Trait complexfloat::AsPrim
[−]
[src]
pub trait AsPrim: Copy + 'static { fn as_usize(self) -> usize; fn as_isize(self) -> isize; fn as_u64(self) -> u64; fn as_i64(self) -> i64; fn as_u32(self) -> u32; fn as_i32(self) -> i32; fn as_u16(self) -> u16; fn as_i16(self) -> i16; fn as_u8(self) -> u8; fn as_i8(self) -> i8; fn as_f32(self) -> f32; fn as_f64(self) -> f64; fn cast_from<T>(T) -> Self where T: AsPrim; fn as_<T>(self) -> T where T: AsPrim { ... } }
Cast to a primitive numeric type using as
.
AsPrim
converts any primitive numeric type to any other,
using the regular cast operator as
.
use asprim::AsPrim; // Compute the mean value using f64 then cast back fn mean<P>(data: &[P]) -> P where P: AsPrim { let mut sum = 0.; for elt in data { sum += elt.as_f64(); } sum /= data.len() as f64; sum.as_() } fn pi<P: AsPrim>() -> P { 3.1415926535897932384626433.as_() }