Trait easy_cast::Conv[][src]

pub trait Conv<T> {
    fn conv(v: T) -> Self;
}

Like From, but supporting potentially-fallible conversions

This trait is intended to replace many uses of the as keyword for conversions, though not all. Very roughly, it is T::try_from(x).unwrap(), restricted to numeric conversions (or like From but with more assumptions).

  • Conversions should preserve values precisely
  • Conversions should succeed, but may fail (panic)
  • We assume that isize and usize are 32 or 64 bits

Fallible conversions are allowed. In Debug builds failure must always panic but in Release builds this is not required (similar to overflow checks on integer arithmetic).

Note that you may not want to use this where loss of precision is acceptable, e.g. if an approximate conversion x as f64 suffices.

Required methods

fn conv(v: T) -> Self[src]

Loading content...

Implementations on Foreign Types

impl Conv<f32> for f64[src]

impl Conv<i8> for f32[src]

impl Conv<i8> for f64[src]

impl Conv<i8> for i16[src]

impl Conv<i8> for i32[src]

impl Conv<i8> for i64[src]

impl Conv<i8> for i128[src]

impl Conv<i16> for f32[src]

impl Conv<i16> for f64[src]

impl Conv<i16> for i32[src]

impl Conv<i16> for i64[src]

impl Conv<i16> for i128[src]

impl Conv<i32> for f64[src]

impl Conv<i32> for i64[src]

impl Conv<i32> for i128[src]

impl Conv<i64> for i128[src]

impl Conv<u8> for f32[src]

impl Conv<u8> for f64[src]

impl Conv<u8> for i16[src]

impl Conv<u8> for i32[src]

impl Conv<u8> for i64[src]

impl Conv<u8> for i128[src]

impl Conv<u8> for u16[src]

impl Conv<u8> for u32[src]

impl Conv<u8> for u64[src]

impl Conv<u8> for u128[src]

impl Conv<u16> for f32[src]

impl Conv<u16> for f64[src]

impl Conv<u16> for i32[src]

impl Conv<u16> for i64[src]

impl Conv<u16> for i128[src]

impl Conv<u16> for u32[src]

impl Conv<u16> for u64[src]

impl Conv<u16> for u128[src]

impl Conv<u32> for f64[src]

impl Conv<u32> for i64[src]

impl Conv<u32> for i128[src]

impl Conv<u32> for u64[src]

impl Conv<u32> for u128[src]

impl Conv<u64> for i128[src]

impl Conv<u64> for u128[src]

impl Conv<i8> for u8[src]

impl Conv<i8> for u16[src]

impl Conv<i8> for u32[src]

impl Conv<i8> for u64[src]

impl Conv<i8> for u128[src]

impl Conv<i16> for u16[src]

impl Conv<i16> for u32[src]

impl Conv<i16> for u64[src]

impl Conv<i16> for u128[src]

impl Conv<i32> for u32[src]

impl Conv<i32> for u64[src]

impl Conv<i32> for u128[src]

impl Conv<i64> for u64[src]

impl Conv<i64> for u128[src]

impl Conv<i128> for u128[src]

impl Conv<u8> for i8[src]

impl Conv<u16> for i8[src]

impl Conv<u16> for i16[src]

impl Conv<u16> for u8[src]

impl Conv<u32> for i8[src]

impl Conv<u32> for i16[src]

impl Conv<u32> for i32[src]

impl Conv<u32> for u8[src]

impl Conv<u32> for u16[src]

impl Conv<u64> for i8[src]

impl Conv<u64> for i16[src]

impl Conv<u64> for i32[src]

impl Conv<u64> for i64[src]

impl Conv<u64> for u8[src]

impl Conv<u64> for u16[src]

impl Conv<u64> for u32[src]

impl Conv<u128> for i8[src]

impl Conv<u128> for i16[src]

impl Conv<u128> for i32[src]

impl Conv<u128> for i64[src]

impl Conv<u128> for i128[src]

impl Conv<u128> for u8[src]

impl Conv<u128> for u16[src]

impl Conv<u128> for u32[src]

impl Conv<u128> for u64[src]

impl Conv<i16> for i8[src]

impl Conv<i16> for u8[src]

impl Conv<i32> for i8[src]

impl Conv<i32> for i16[src]

impl Conv<i32> for u8[src]

impl Conv<i32> for u16[src]

impl Conv<i64> for i8[src]

impl Conv<i64> for i16[src]

impl Conv<i64> for i32[src]

impl Conv<i64> for u8[src]

impl Conv<i64> for u16[src]

impl Conv<i64> for u32[src]

impl Conv<i128> for i8[src]

impl Conv<i128> for i16[src]

impl Conv<i128> for i32[src]

impl Conv<i128> for i64[src]

impl Conv<i128> for u8[src]

impl Conv<i128> for u16[src]

impl Conv<i128> for u32[src]

impl Conv<i128> for u64[src]

impl Conv<i8> for isize[src]

impl Conv<i16> for isize[src]

impl Conv<i32> for isize[src]

impl Conv<i64> for isize[src]

impl Conv<i128> for isize[src]

impl Conv<u8> for isize[src]

impl Conv<u16> for isize[src]

impl Conv<u32> for isize[src]

impl Conv<u64> for isize[src]

impl Conv<u128> for isize[src]

impl Conv<isize> for i8[src]

impl Conv<isize> for i16[src]

impl Conv<isize> for i32[src]

impl Conv<isize> for i64[src]

impl Conv<isize> for i128[src]

impl Conv<usize> for i8[src]

impl Conv<usize> for i16[src]

impl Conv<usize> for i32[src]

impl Conv<usize> for i64[src]

impl Conv<usize> for i128[src]

impl Conv<usize> for isize[src]

impl Conv<i8> for usize[src]

impl Conv<i16> for usize[src]

impl Conv<i32> for usize[src]

impl Conv<i64> for usize[src]

impl Conv<i128> for usize[src]

impl Conv<isize> for u8[src]

impl Conv<isize> for u16[src]

impl Conv<isize> for u32[src]

impl Conv<isize> for u64[src]

impl Conv<isize> for u128[src]

impl Conv<isize> for usize[src]

impl Conv<u8> for usize[src]

impl Conv<u16> for usize[src]

impl Conv<u32> for usize[src]

impl Conv<u64> for usize[src]

impl Conv<u128> for usize[src]

impl Conv<usize> for u8[src]

impl Conv<usize> for u16[src]

impl Conv<usize> for u32[src]

impl Conv<usize> for u64[src]

impl Conv<usize> for u128[src]

impl Conv<f64> for f32[src]

impl Conv<i32> for f32[src]

impl Conv<u32> for f32[src]

impl Conv<i64> for f32[src]

impl Conv<i64> for f64[src]

impl Conv<u64> for f32[src]

impl Conv<u64> for f64[src]

impl Conv<i128> for f32[src]

impl Conv<i128> for f64[src]

impl Conv<u128> for f32[src]

impl Conv<u128> for f64[src]

impl Conv<isize> for f32[src]

impl Conv<isize> for f64[src]

impl Conv<usize> for f32[src]

impl Conv<usize> for f64[src]

Loading content...

Implementors

impl<T> Conv<T> for T[src]

Loading content...