From 22a0ad4093f444d51afdc14ef0d4830834f72726 Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Wed, 28 Nov 2012 14:18:29 +1000 Subject: [PATCH] Remove TypeConsts trait --- src/num/consts.rs | 40 ++-------------------------------------- src/num/ext.rs | 10 +--------- 2 files changed, 3 insertions(+), 47 deletions(-) diff --git a/src/num/consts.rs b/src/num/consts.rs index 2fa5b36..235efdf 100644 --- a/src/num/consts.rs +++ b/src/num/consts.rs @@ -1,14 +1,9 @@ -trait TypeConsts { - static pure fn nil() -> self; - static pure fn ident() -> self; -} - -trait IntConsts: TypeConsts { +trait IntConsts { static pure fn zero() -> self; static pure fn one() -> self; } -trait FloatConsts: TypeConsts, IntConsts { +trait FloatConsts: IntConsts { static pure fn pi() -> self; static pure fn frac_pi_2() -> self; static pure fn frac_pi_4() -> self; @@ -24,84 +19,57 @@ trait FloatConsts: TypeConsts, IntConsts { 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 { - #[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 one() -> u8 { 1u8 } } 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 one() -> u16 { 1u16 } } 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 one() -> u32 { 1u32 } } 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 one() -> u64 { 1u64 } } 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 one() -> uint { 1u } } 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 one() -> i8 { 1i8 } } 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 one() -> i16 { 1i16 } } 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 one() -> i32 { 1i32 } } 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 one() -> i64 { 1i64 } } 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 one() -> int { 1 } } 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 one() -> f32 { 1f32 } #[inline(always)] static pure fn pi() -> f32 { 3.14159265358979323846264338327950288_f32 } @@ -120,8 +88,6 @@ pub impl f32: 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 one() -> f64 { 1f64 } #[inline(always)] static pure fn pi() -> f64 { 3.14159265358979323846264338327950288_f64 } @@ -140,8 +106,6 @@ pub impl f64: 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 one() -> float { 1f } #[inline(always)] static pure fn pi() -> float { 3.14159265358979323846264338327950288 } diff --git a/src/num/ext.rs b/src/num/ext.rs index 0720166..69c2ef8 100644 --- a/src/num/ext.rs +++ b/src/num/ext.rs @@ -7,15 +7,7 @@ use num::consts::*; use num::default_eq::*; -pub trait TypeExt: TypeConsts, DefaultEq {} - - -pub trait BooleanExt: TypeExt {} - -pub impl bool: BooleanExt {} - - -pub trait NumExt: Copy, TypeExt, Eq, Num, NumCast, Ord {} +pub trait NumExt: Copy, Eq, Num, NumCast, Ord {} pub trait UnSignedExt: NumExt {}