pub trait ConvertOps {
fn to_u8(self) -> u8;
fn to_u16(self) -> u16;
fn to_u32(self) -> u32;
fn to_u64(self) -> u64;
fn to_u128(self) -> u128;
fn to_usize(self) -> usize;
fn to_i8(self) -> i8;
fn to_i16(self) -> i16;
fn to_i32(self) -> i32;
fn to_i64(self) -> i64;
fn to_i128(self) -> i128;
fn to_isize(self) -> isize;
fn to_f32(self) -> f32;
fn to_f64(self) -> f64;
}
macro_rules! impl_convert {
($($t:ty),*) => {
$(impl ConvertOps for $t {
#[inline] fn to_u8(self) -> u8 { self as u8 }
#[inline] fn to_u16(self) -> u16 { self as u16 }
#[inline] fn to_u32(self) -> u32 { self as u32 }
#[inline] fn to_u64(self) -> u64 { self as u64 }
#[inline] fn to_u128(self) -> u128 { self as u128 }
#[inline] fn to_usize(self) -> usize { self as usize }
#[inline] fn to_i8(self) -> i8 { self as i8 }
#[inline] fn to_i16(self) -> i16 { self as i16 }
#[inline] fn to_i32(self) -> i32 { self as i32 }
#[inline] fn to_i64(self) -> i64 { self as i64 }
#[inline] fn to_i128(self) -> i128 { self as i128 }
#[inline] fn to_isize(self) -> isize { self as isize }
#[inline] fn to_f32(self) -> f32 { self as f32 }
#[inline] fn to_f64(self) -> f64 { self as f64 }
})*
};
}
impl_convert!(u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize, f32, f64);