Remove TypeConsts trait

This commit is contained in:
Brendan Zabarauskas 2012-11-28 14:18:29 +10:00
parent e6ca5297dc
commit 22a0ad4093
2 changed files with 3 additions and 47 deletions

View file

@ -1,14 +1,9 @@
trait TypeConsts { trait IntConsts {
static pure fn nil() -> self;
static pure fn ident() -> self;
}
trait IntConsts: TypeConsts {
static pure fn zero() -> self; static pure fn zero() -> self;
static pure fn one() -> self; static pure fn one() -> self;
} }
trait FloatConsts: TypeConsts, IntConsts { trait FloatConsts: IntConsts {
static pure fn pi() -> self; static pure fn pi() -> self;
static pure fn frac_pi_2() -> self; static pure fn frac_pi_2() -> self;
static pure fn frac_pi_4() -> self; static pure fn frac_pi_4() -> self;
@ -24,84 +19,57 @@ trait FloatConsts: TypeConsts, IntConsts {
static pure fn ln_10() -> self; static pure fn ln_10() -> self;
} }
pub impl bool: TypeConsts {
#[inline(always)] static pure fn nil() -> bool { false }
#[inline(always)] static pure fn ident() -> bool { true }
}
pub impl u8: IntConsts { pub impl u8: IntConsts {
#[inline(always)] static pure fn nil() -> u8 { 0u8 }
#[inline(always)] static pure fn ident() -> u8 { 1u8 }
#[inline(always)] static pure fn zero() -> u8 { 0u8 } #[inline(always)] static pure fn zero() -> u8 { 0u8 }
#[inline(always)] static pure fn one() -> u8 { 1u8 } #[inline(always)] static pure fn one() -> u8 { 1u8 }
} }
pub impl u16: IntConsts { pub impl u16: IntConsts {
#[inline(always)] static pure fn nil() -> u16 { 0u16 }
#[inline(always)] static pure fn ident() -> u16 { 1u16 }
#[inline(always)] static pure fn zero() -> u16 { 0u16 } #[inline(always)] static pure fn zero() -> u16 { 0u16 }
#[inline(always)] static pure fn one() -> u16 { 1u16 } #[inline(always)] static pure fn one() -> u16 { 1u16 }
} }
pub impl u32: IntConsts { pub impl u32: IntConsts {
#[inline(always)] static pure fn nil() -> u32 { 0u32 }
#[inline(always)] static pure fn ident() -> u32 { 1u32 }
#[inline(always)] static pure fn zero() -> u32 { 0u32 } #[inline(always)] static pure fn zero() -> u32 { 0u32 }
#[inline(always)] static pure fn one() -> u32 { 1u32 } #[inline(always)] static pure fn one() -> u32 { 1u32 }
} }
pub impl u64: IntConsts { pub impl u64: IntConsts {
#[inline(always)] static pure fn nil() -> u32 { 0u32 }
#[inline(always)] static pure fn ident() -> u32 { 1u32 }
#[inline(always)] static pure fn zero() -> u64 { 0u64 } #[inline(always)] static pure fn zero() -> u64 { 0u64 }
#[inline(always)] static pure fn one() -> u64 { 1u64 } #[inline(always)] static pure fn one() -> u64 { 1u64 }
} }
pub impl uint: IntConsts { pub impl uint: IntConsts {
#[inline(always)] static pure fn nil() -> uint { 0u }
#[inline(always)] static pure fn ident() -> uint { 1u }
#[inline(always)] static pure fn zero() -> uint { 0u } #[inline(always)] static pure fn zero() -> uint { 0u }
#[inline(always)] static pure fn one() -> uint { 1u } #[inline(always)] static pure fn one() -> uint { 1u }
} }
pub impl i8: IntConsts { pub impl i8: IntConsts {
#[inline(always)] static pure fn nil() -> i8 { 0i8 }
#[inline(always)] static pure fn ident() -> i8 { 1i8 }
#[inline(always)] static pure fn zero() -> i8 { 0i8 } #[inline(always)] static pure fn zero() -> i8 { 0i8 }
#[inline(always)] static pure fn one() -> i8 { 1i8 } #[inline(always)] static pure fn one() -> i8 { 1i8 }
} }
pub impl i16: IntConsts { pub impl i16: IntConsts {
#[inline(always)] static pure fn nil() -> i16 { 0i16 }
#[inline(always)] static pure fn ident() -> i16 { 1i16 }
#[inline(always)] static pure fn zero() -> i16 { 0i16 } #[inline(always)] static pure fn zero() -> i16 { 0i16 }
#[inline(always)] static pure fn one() -> i16 { 1i16 } #[inline(always)] static pure fn one() -> i16 { 1i16 }
} }
pub impl i32: IntConsts { pub impl i32: IntConsts {
#[inline(always)] static pure fn nil() -> i32 { 0i32 }
#[inline(always)] static pure fn ident() -> i32 { 1i32 }
#[inline(always)] static pure fn zero() -> i32 { 0i32 } #[inline(always)] static pure fn zero() -> i32 { 0i32 }
#[inline(always)] static pure fn one() -> i32 { 1i32 } #[inline(always)] static pure fn one() -> i32 { 1i32 }
} }
pub impl i64: IntConsts { pub impl i64: IntConsts {
#[inline(always)] static pure fn nil() -> i64 { 0i64 }
#[inline(always)] static pure fn ident() -> i64 { 1i64 }
#[inline(always)] static pure fn zero() -> i64 { 0i64 } #[inline(always)] static pure fn zero() -> i64 { 0i64 }
#[inline(always)] static pure fn one() -> i64 { 1i64 } #[inline(always)] static pure fn one() -> i64 { 1i64 }
} }
pub impl int: IntConsts { pub impl int: IntConsts {
#[inline(always)] static pure fn nil() -> int { 0 }
#[inline(always)] static pure fn ident() -> int { 1 }
#[inline(always)] static pure fn zero() -> int { 0 } #[inline(always)] static pure fn zero() -> int { 0 }
#[inline(always)] static pure fn one() -> int { 1 } #[inline(always)] static pure fn one() -> int { 1 }
} }
pub impl f32: FloatConsts { pub impl f32: FloatConsts {
#[inline(always)] static pure fn nil() -> f32 { 0f32 }
#[inline(always)] static pure fn ident() -> f32 { 1f32 }
#[inline(always)] static pure fn zero() -> f32 { 0f32 } #[inline(always)] static pure fn zero() -> f32 { 0f32 }
#[inline(always)] static pure fn one() -> f32 { 1f32 } #[inline(always)] static pure fn one() -> f32 { 1f32 }
#[inline(always)] static pure fn pi() -> f32 { 3.14159265358979323846264338327950288_f32 } #[inline(always)] static pure fn pi() -> f32 { 3.14159265358979323846264338327950288_f32 }
@ -120,8 +88,6 @@ pub impl f32: FloatConsts {
} }
pub impl f64: FloatConsts { pub impl f64: FloatConsts {
#[inline(always)] static pure fn nil() -> f64 { 0f64 }
#[inline(always)] static pure fn ident() -> f64 { 1f64 }
#[inline(always)] static pure fn zero() -> f64 { 0f64 } #[inline(always)] static pure fn zero() -> f64 { 0f64 }
#[inline(always)] static pure fn one() -> f64 { 1f64 } #[inline(always)] static pure fn one() -> f64 { 1f64 }
#[inline(always)] static pure fn pi() -> f64 { 3.14159265358979323846264338327950288_f64 } #[inline(always)] static pure fn pi() -> f64 { 3.14159265358979323846264338327950288_f64 }
@ -140,8 +106,6 @@ pub impl f64: FloatConsts {
} }
pub impl float: FloatConsts { pub impl float: FloatConsts {
#[inline(always)] static pure fn nil() -> float { 0f }
#[inline(always)] static pure fn ident() -> float { 1f }
#[inline(always)] static pure fn zero() -> float { 0f } #[inline(always)] static pure fn zero() -> float { 0f }
#[inline(always)] static pure fn one() -> float { 1f } #[inline(always)] static pure fn one() -> float { 1f }
#[inline(always)] static pure fn pi() -> float { 3.14159265358979323846264338327950288 } #[inline(always)] static pure fn pi() -> float { 3.14159265358979323846264338327950288 }

View file

@ -7,15 +7,7 @@ use num::consts::*;
use num::default_eq::*; use num::default_eq::*;
pub trait TypeExt: TypeConsts, DefaultEq {} pub trait NumExt: Copy, Eq, Num, NumCast, Ord {}
pub trait BooleanExt: TypeExt {}
pub impl bool: BooleanExt {}
pub trait NumExt: Copy, TypeExt, Eq, Num, NumCast, Ord {}
pub trait UnSignedExt: NumExt {} pub trait UnSignedExt: NumExt {}