about summary refs log tree commit diff
path: root/src/libcore/num
diff options
context:
space:
mode:
authorBrendan Zabarauskas <bjzaba@yahoo.com.au>2013-04-14 02:19:35 +1000
committerBrendan Zabarauskas <bjzaba@yahoo.com.au>2013-04-14 02:19:35 +1000
commitce6ee7bb041044c3e236be7aefae97931e596407 (patch)
tree32077b5a247e5a07c34e1deff7b62b0da50d2ddf /src/libcore/num
parentfde6995229ff1bf99fccbcfee8b55e27afdb11ec (diff)
downloadrust-ce6ee7bb041044c3e236be7aefae97931e596407.tar.gz
rust-ce6ee7bb041044c3e236be7aefae97931e596407.zip
Restore Num trait
This restores the trait that was lost in 216e85fadf465c25fe7bc4a9f06f8162ec12b552. It will eventually be broken up into a more fine-grained trait hierarchy in the future once a design can be agreed upon.
Diffstat (limited to 'src/libcore/num')
-rw-r--r--src/libcore/num/num.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libcore/num/num.rs b/src/libcore/num/num.rs
index d200a68c400..333c7ce02b2 100644
--- a/src/libcore/num/num.rs
+++ b/src/libcore/num/num.rs
@@ -16,6 +16,28 @@ use kinds::Copy;
 
 pub mod strconv;
 
+pub trait Num: Eq + Zero + One
+             + Neg<Self>
+             + Add<Self,Self>
+             + Sub<Self,Self>
+             + Mul<Self,Self>
+             + Div<Self,Self>
+             + Modulo<Self,Self> {}
+
+impl Num for u8 {}
+impl Num for u16 {}
+impl Num for u32 {}
+impl Num for u64 {}
+impl Num for uint {}
+impl Num for i8 {}
+impl Num for i16 {}
+impl Num for i32 {}
+impl Num for i64 {}
+impl Num for int {}
+impl Num for f32 {}
+impl Num for f64 {}
+impl Num for float {}
+
 pub trait IntConvertible {
     fn to_int(&self) -> int;
     fn from_int(n: int) -> Self;