From 5d7b3cfba45da3487422ad1a15d0b714c5536d54 Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Sat, 8 Dec 2012 21:11:08 +1000 Subject: [PATCH] Remove cast method --- src/num/conv.rs | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/num/conv.rs b/src/num/conv.rs index 6bad97a..58c79d5 100644 --- a/src/num/conv.rs +++ b/src/num/conv.rs @@ -7,10 +7,8 @@ * the `cast` function everywhere. */ pub trait NumConv { - // TODO: the plan is to remove the `from` and `cast` methods and use the - // `num::kinds::Number::from(n: T) -> self; - pure fn cast(&self) -> T; pure fn to_u8(&self) -> u8; pure fn to_u16(&self) -> u16; @@ -30,11 +28,10 @@ pub trait NumConv { } #[inline(always)] -pub pure fn cast(n: T) -> U { n.cast() } +pub pure fn cast(n: T) -> U { NumConv::from(move n) } pub impl u8: NumConv { #[inline(always)] static pure fn from(n: T) -> u8 { n.to_u8() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -55,7 +52,6 @@ pub impl u8: NumConv { pub impl u16: NumConv { #[inline(always)] static pure fn from(n: T) -> u16 { n.to_u16() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self } @@ -76,7 +72,6 @@ pub impl u16: NumConv { pub impl u32: NumConv { #[inline(always)] static pure fn from(n: T) -> u32 { n.to_u32() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -97,7 +92,6 @@ pub impl u32: NumConv { pub impl u64: NumConv { #[inline(always)] static pure fn from(n: T) -> u64 { n.to_u64() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -118,7 +112,6 @@ pub impl u64: NumConv { pub impl uint: NumConv { #[inline(always)] static pure fn from(n: T) -> uint { n.to_uint() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -139,7 +132,6 @@ pub impl uint: NumConv { pub impl i8: NumConv { #[inline(always)] static pure fn from(n: T) -> i8 { n.to_i8() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -160,7 +152,6 @@ pub impl i8: NumConv { pub impl i16: NumConv { #[inline(always)] static pure fn from(n: T) -> i16 { n.to_i16() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -181,7 +172,6 @@ pub impl i16: NumConv { pub impl i32: NumConv { #[inline(always)] static pure fn from(n: T) -> i32 { n.to_i32() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -202,7 +192,6 @@ pub impl i32: NumConv { pub impl i64: NumConv { #[inline(always)] static pure fn from(n: T) -> i64 { n.to_i64() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -223,7 +212,6 @@ pub impl i64: NumConv { pub impl int: NumConv { #[inline(always)] static pure fn from(n: T) -> int { n.to_int() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -244,7 +232,6 @@ pub impl int: NumConv { pub impl f32: NumConv { #[inline(always)] static pure fn from(n: T) -> f32 { n.to_f32() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -265,7 +252,6 @@ pub impl f32: NumConv { pub impl f64: NumConv { #[inline(always)] static pure fn from(n: T) -> f64 { n.to_f64() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 } @@ -286,7 +272,6 @@ pub impl f64: NumConv { pub impl float: NumConv { #[inline(always)] static pure fn from(n: T) -> float { n.to_float() } - #[inline(always)] pure fn cast(&self) -> T { NumConv::from(*self) } #[inline(always)] pure fn to_u8(&self) -> u8 { *self as u8 } #[inline(always)] pure fn to_u16(&self) -> u16 { *self as u16 }