Skip to content

Commit ae225e2

Browse files
committed
libcore: Add binop functions to u32 and u64
1 parent fefae72 commit ae225e2

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

src/libcore/u32.rs

+43
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,49 @@ Return the maximal value for a u32
1616
*/
1717
const max_value: u32 = 0xffff_ffffu32;
1818

19+
/* Function: add */
20+
pure fn add(x: u32, y: u32) -> u32 { ret x + y; }
21+
22+
/* Function: sub */
23+
pure fn sub(x: u32, y: u32) -> u32 { ret x - y; }
24+
25+
/* Function: mul */
26+
pure fn mul(x: u32, y: u32) -> u32 { ret x * y; }
27+
28+
/* Function: div */
29+
pure fn div(x: u32, y: u32) -> u32 { ret x / y; }
30+
31+
/* Function: rem */
32+
pure fn rem(x: u32, y: u32) -> u32 { ret x % y; }
33+
34+
/* Predicate: lt */
35+
pure fn lt(x: u32, y: u32) -> bool { ret x < y; }
36+
37+
/* Predicate: le */
38+
pure fn le(x: u32, y: u32) -> bool { ret x <= y; }
39+
40+
/* Predicate: eq */
41+
pure fn eq(x: u32, y: u32) -> bool { ret x == y; }
42+
43+
/* Predicate: ne */
44+
pure fn ne(x: u32, y: u32) -> bool { ret x != y; }
45+
46+
/* Predicate: ge */
47+
pure fn ge(x: u32, y: u32) -> bool { ret x >= y; }
48+
49+
/* Predicate: gt */
50+
pure fn gt(x: u32, y: u32) -> bool { ret x > y; }
51+
52+
/*
53+
Function: range
54+
55+
Iterate over the range [`lo`..`hi`)
56+
*/
57+
fn range(lo: u32, hi: u32, it: block(u32)) {
58+
let i = lo;
59+
while i < hi { it(i); i += 1u32; }
60+
}
61+
1962
//
2063
// Local Variables:
2164
// mode: rust

src/libcore/u64.rs

+43
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,49 @@ Return the maximal value for a u64
1616
*/
1717
const max_value: u64 = 18446744073709551615u64;
1818

19+
/* Function: add */
20+
pure fn add(x: u64, y: u64) -> u64 { ret x + y; }
21+
22+
/* Function: sub */
23+
pure fn sub(x: u64, y: u64) -> u64 { ret x - y; }
24+
25+
/* Function: mul */
26+
pure fn mul(x: u64, y: u64) -> u64 { ret x * y; }
27+
28+
/* Function: div */
29+
pure fn div(x: u64, y: u64) -> u64 { ret x / y; }
30+
31+
/* Function: rem */
32+
pure fn rem(x: u64, y: u64) -> u64 { ret x % y; }
33+
34+
/* Predicate: lt */
35+
pure fn lt(x: u64, y: u64) -> bool { ret x < y; }
36+
37+
/* Predicate: le */
38+
pure fn le(x: u64, y: u64) -> bool { ret x <= y; }
39+
40+
/* Predicate: eq */
41+
pure fn eq(x: u64, y: u64) -> bool { ret x == y; }
42+
43+
/* Predicate: ne */
44+
pure fn ne(x: u64, y: u64) -> bool { ret x != y; }
45+
46+
/* Predicate: ge */
47+
pure fn ge(x: u64, y: u64) -> bool { ret x >= y; }
48+
49+
/* Predicate: gt */
50+
pure fn gt(x: u64, y: u64) -> bool { ret x > y; }
51+
52+
/*
53+
Function: range
54+
55+
Iterate over the range [`lo`..`hi`)
56+
*/
57+
fn range(lo: u64, hi: u64, it: block(u64)) {
58+
let i = lo;
59+
while i < hi { it(i); i += 1u64; }
60+
}
61+
1962
/*
2063
Function: to_str
2164

0 commit comments

Comments
 (0)