about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2011-12-26 18:15:17 -0800
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2012-01-06 07:47:13 -0800
commitae225e2b6c8dfe7a24444bd5b11b8b21df7d5f9d (patch)
tree09c3cc91aa2c800f2c859975d69995dde052a5f4 /src/libcore
parentfefae72a53a61c256481328ed29aafb725056f5c (diff)
libcore: Add binop functions to u32 and u64
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/u32.rs43
-rw-r--r--src/libcore/u64.rs43
2 files changed, 86 insertions, 0 deletions
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 @@ Return the maximal value for a u32
 */
 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 @@ Return the maximal value for a u64
 */
 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