Restore Num trait
This restores the trait that was lost in 216e85fadf
. It will eventually be broken up into a more fine-grained trait hierarchy in the future once a design can be agreed upon.
This commit is contained in:
parent
fde6995229
commit
ce6ee7bb04
|
@ -99,7 +99,7 @@ pub use vec::{OwnedVector, OwnedCopyableVector};
|
|||
pub use iter::{BaseIter, ExtendedIter, EqIter, CopyableIter};
|
||||
pub use iter::{CopyableOrderedIter, CopyableNonstrictIter, Times};
|
||||
|
||||
pub use num::NumCast;
|
||||
pub use num::{Num, NumCast};
|
||||
pub use ptr::Ptr;
|
||||
pub use to_str::ToStr;
|
||||
pub use clone::Clone;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -34,7 +34,7 @@ pub use hash::Hash;
|
|||
pub use iter::{BaseIter, ReverseIter, MutableIter, ExtendedIter, EqIter};
|
||||
pub use iter::{CopyableIter, CopyableOrderedIter, CopyableNonstrictIter};
|
||||
pub use iter::Times;
|
||||
pub use num::NumCast;
|
||||
pub use num::{Num, NumCast};
|
||||
pub use path::GenericPath;
|
||||
pub use path::Path;
|
||||
pub use path::PosixPath;
|
||||
|
|
|
@ -16,7 +16,7 @@ use core::cmp::{Eq, Ord};
|
|||
use core::num::NumCast::from;
|
||||
use std::cmp::FuzzyEq;
|
||||
|
||||
pub trait NumExt: NumCast + Eq + Ord {}
|
||||
pub trait NumExt: Num + NumCast + Eq + Ord {}
|
||||
|
||||
pub trait FloatExt: NumExt + FuzzyEq<Self> {}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
use core::cmp::Ord;
|
||||
use core::num::NumCast::from;
|
||||
|
||||
pub trait NumExt: NumCast + Ord { }
|
||||
pub trait NumExt: Num + NumCast + Ord { }
|
||||
|
||||
fn greater_than_one<T:NumExt>(n: &T) -> bool {
|
||||
*n > from(1)
|
||||
|
|
|
@ -38,7 +38,7 @@ impl TypeExt for f64 {}
|
|||
impl TypeExt for float {}
|
||||
|
||||
|
||||
pub trait NumExt: TypeExt + Eq + Ord + NumCast {}
|
||||
pub trait NumExt: TypeExt + Eq + Ord + Num + NumCast {}
|
||||
|
||||
impl NumExt for u8 {}
|
||||
impl NumExt for u16 {}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
use core::cmp::{Eq, Ord};
|
||||
use core::num::NumCast::from;
|
||||
|
||||
pub trait NumExt: Eq + Ord + NumCast {}
|
||||
pub trait NumExt: Eq + Ord + Num + NumCast {}
|
||||
|
||||
impl NumExt for f32 {}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
use core::cmp::{Eq, Ord};
|
||||
use core::num::NumCast::from;
|
||||
|
||||
pub trait NumExt: Eq + NumCast {}
|
||||
pub trait NumExt: Eq + Num + NumCast {}
|
||||
|
||||
impl NumExt for f32 {}
|
||||
impl NumExt for int {}
|
||||
|
|
Loading…
Reference in New Issue