From: Erick Tryzelaar Date: Tue, 27 Dec 2011 02:15:17 +0000 (-0800) Subject: libcore: Add binop functions to u32 and u64 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=ae225e2b6c8dfe7a24444bd5b11b8b21df7d5f9d;p=rust.git libcore: Add binop functions to u32 and u64 --- diff --git a/src/libcore/u32.rs b/src/libcore/u32.rs index f33b8414a4d..569d59b981a 100644 --- a/src/libcore/u32.rs +++ b/src/libcore/u32.rs @@ -16,6 +16,49 @@ */ const max_value: u32 = 0xffff_ffffu32; +/* Function: add */ +pure fn add(x: u32, y: u32) -> u32 { ret x + y; } + +/* Function: sub */ +pure fn sub(x: u32, y: u32) -> u32 { ret x - y; } + +/* Function: mul */ +pure fn mul(x: u32, y: u32) -> u32 { ret x * y; } + +/* Function: div */ +pure fn div(x: u32, y: u32) -> u32 { ret x / y; } + +/* Function: rem */ +pure fn rem(x: u32, y: u32) -> u32 { ret x % y; } + +/* Predicate: lt */ +pure fn lt(x: u32, y: u32) -> bool { ret x < y; } + +/* Predicate: le */ +pure fn le(x: u32, y: u32) -> bool { ret x <= y; } + +/* Predicate: eq */ +pure fn eq(x: u32, y: u32) -> bool { ret x == y; } + +/* Predicate: ne */ +pure fn ne(x: u32, y: u32) -> bool { ret x != y; } + +/* Predicate: ge */ +pure fn ge(x: u32, y: u32) -> bool { ret x >= y; } + +/* Predicate: gt */ +pure fn gt(x: u32, y: u32) -> bool { ret x > y; } + +/* +Function: range + +Iterate over the range [`lo`..`hi`) +*/ +fn range(lo: u32, hi: u32, it: block(u32)) { + let i = lo; + while i < hi { it(i); i += 1u32; } +} + // // Local Variables: // mode: rust diff --git a/src/libcore/u64.rs b/src/libcore/u64.rs index a7cd9af35bc..bce99f02b87 100644 --- a/src/libcore/u64.rs +++ b/src/libcore/u64.rs @@ -16,6 +16,49 @@ */ const max_value: u64 = 18446744073709551615u64; +/* Function: add */ +pure fn add(x: u64, y: u64) -> u64 { ret x + y; } + +/* Function: sub */ +pure fn sub(x: u64, y: u64) -> u64 { ret x - y; } + +/* Function: mul */ +pure fn mul(x: u64, y: u64) -> u64 { ret x * y; } + +/* Function: div */ +pure fn div(x: u64, y: u64) -> u64 { ret x / y; } + +/* Function: rem */ +pure fn rem(x: u64, y: u64) -> u64 { ret x % y; } + +/* Predicate: lt */ +pure fn lt(x: u64, y: u64) -> bool { ret x < y; } + +/* Predicate: le */ +pure fn le(x: u64, y: u64) -> bool { ret x <= y; } + +/* Predicate: eq */ +pure fn eq(x: u64, y: u64) -> bool { ret x == y; } + +/* Predicate: ne */ +pure fn ne(x: u64, y: u64) -> bool { ret x != y; } + +/* Predicate: ge */ +pure fn ge(x: u64, y: u64) -> bool { ret x >= y; } + +/* Predicate: gt */ +pure fn gt(x: u64, y: u64) -> bool { ret x > y; } + +/* +Function: range + +Iterate over the range [`lo`..`hi`) +*/ +fn range(lo: u64, hi: u64, it: block(u64)) { + let i = lo; + while i < hi { it(i); i += 1u64; } +} + /* Function: to_str