pub trait ToFloat<F> {
fn to_float(self) -> F;
}
pub trait ToInt<I> {
fn to_int(self) -> I;
}
pub trait FromFloat<F> {
fn from_float(f: F) -> Self;
}
pub trait FromInt<I> {
fn from_int(i: I) -> Self;
}
impl<F, I> ToFloat<F> for I
where
F: FromInt<I>,
{
fn to_float(self) -> F {
F::from_int(self)
}
}
impl FromFloat<f64> for f64 {
fn from_float(f: f64) -> Self {
f
}
}
impl FromFloat<f32> for f32 {
fn from_float(f: f32) -> Self {
f
}
}
impl FromFloat<f64> for f32 {
fn from_float(f: f64) -> Self {
f as f32
}
}
impl FromFloat<f32> for f64 {
fn from_float(f: f32) -> Self {
f as f64
}
}
impl ToFloat<f64> for f32 {
fn to_float(self) -> f64 {
self as f64
}
}
impl ToFloat<f64> for f64 {
fn to_float(self) -> f64 {
self
}
}
impl ToFloat<f32> for f64 {
fn to_float(self) -> f32 {
self as f32
}
}
impl ToFloat<f32> for f32 {
fn to_float(self) -> f32 {
self
}
}
impl<F, I> ToInt<I> for F
where
I: FromFloat<F>,
{
fn to_int(self) -> I {
I::from_float(self)
}
}
impl FromFloat<f64> for i128 {
fn from_float(f: f64) -> Self {
f as i128
}
}
impl FromFloat<f32> for i128 {
fn from_float(f: f32) -> Self {
f as i128
}
}
impl FromFloat<f64> for i64 {
fn from_float(f: f64) -> Self {
f as i64
}
}
impl FromFloat<f32> for i64 {
fn from_float(f: f32) -> Self {
f as i64
}
}
impl FromFloat<f64> for i32 {
fn from_float(f: f64) -> Self {
f as i32
}
}
impl FromFloat<f32> for i32 {
fn from_float(f: f32) -> Self {
f as i32
}
}
impl FromFloat<f64> for i16 {
fn from_float(f: f64) -> Self {
f as i16
}
}
impl FromFloat<f32> for i16 {
fn from_float(f: f32) -> Self {
f as i16
}
}
impl FromFloat<f64> for i8 {
fn from_float(f: f64) -> Self {
f as i8
}
}
impl FromFloat<f32> for i8 {
fn from_float(f: f32) -> Self {
f as i8
}
}
impl FromFloat<f64> for u128 {
fn from_float(f: f64) -> Self {
f as u128
}
}
impl FromFloat<f32> for u128 {
fn from_float(f: f32) -> Self {
f as u128
}
}
impl FromFloat<f64> for u64 {
fn from_float(f: f64) -> Self {
f as u64
}
}
impl FromFloat<f32> for u64 {
fn from_float(f: f32) -> Self {
f as u64
}
}
impl FromFloat<f64> for u32 {
fn from_float(f: f64) -> Self {
f as u32
}
}
impl FromFloat<f32> for u32 {
fn from_float(f: f32) -> Self {
f as u32
}
}
impl FromFloat<f64> for u16 {
fn from_float(f: f64) -> Self {
f as u16
}
}
impl FromFloat<f32> for u16 {
fn from_float(f: f32) -> Self {
f as u16
}
}
impl FromFloat<f64> for u8 {
fn from_float(f: f64) -> Self {
f as u8
}
}
impl FromFloat<f32> for u8 {
fn from_float(f: f32) -> Self {
f as u8
}
}
impl FromFloat<f64> for usize {
fn from_float(f: f64) -> Self {
f as usize
}
}
impl FromFloat<f32> for usize {
fn from_float(f: f32) -> Self {
f as usize
}
}
impl FromInt<i128> for f64 {
fn from_int(i: i128) -> Self {
i as f64
}
}
impl FromInt<i128> for f32 {
fn from_int(i: i128) -> Self {
i as f32
}
}
impl FromInt<i64> for f64 {
fn from_int(i: i64) -> Self {
i as f64
}
}
impl FromInt<i64> for f32 {
fn from_int(i: i64) -> Self {
i as f32
}
}
impl FromInt<i32> for f64 {
fn from_int(i: i32) -> Self {
i as f64
}
}
impl FromInt<i32> for f32 {
fn from_int(i: i32) -> Self {
i as f32
}
}
impl FromInt<i16> for f64 {
fn from_int(i: i16) -> Self {
i as f64
}
}
impl FromInt<i16> for f32 {
fn from_int(i: i16) -> Self {
i as f32
}
}
impl FromInt<i8> for f64 {
fn from_int(i: i8) -> Self {
i as f64
}
}
impl FromInt<i8> for f32 {
fn from_int(i: i8) -> Self {
i as f32
}
}
impl FromInt<u128> for f64 {
fn from_int(i: u128) -> Self {
i as f64
}
}
impl FromInt<u128> for f32 {
fn from_int(i: u128) -> Self {
i as f32
}
}
impl FromInt<u64> for f64 {
fn from_int(i: u64) -> Self {
i as f64
}
}
impl FromInt<u64> for f32 {
fn from_int(i: u64) -> Self {
i as f32
}
}
impl FromInt<u32> for f64 {
fn from_int(i: u32) -> Self {
i as f64
}
}
impl FromInt<u32> for f32 {
fn from_int(i: u32) -> Self {
i as f32
}
}
impl FromInt<u16> for f64 {
fn from_int(i: u16) -> Self {
i as f64
}
}
impl FromInt<u16> for f32 {
fn from_int(i: u16) -> Self {
i as f32
}
}
impl FromInt<u8> for f64 {
fn from_int(i: u8) -> Self {
i as f64
}
}
impl FromInt<u8> for f32 {
fn from_int(i: u8) -> Self {
i as f32
}
}
impl FromInt<usize> for f64 {
fn from_int(i: usize) -> Self {
i as f64
}
}
impl FromInt<usize> for f32 {
fn from_int(i: usize) -> Self {
i as f32
}
}