Trait easy_cast::Conv[][src]

pub trait Conv<T>: Sized {
    fn conv(v: T) -> Self;
fn try_conv(v: T) -> Result<Self, Error>; }

Like From, but supporting potentially-fallible conversions

This trait is intended to replace many uses of the as keyword for numeric conversions, though not all. Conversions from floating-point types are excluded since it is very easy to (accidentally) produce non-integer values; instead use ConvFloat.

Two methods are provided:

  • Conv::conv is for “success expected” conversions. In debug builds and when using the always_assert feature flag, inexact conversions will panic. In other cases, conversions may produce incorrect values (according to the behaviour of as). This is similar to the behviour of Rust’s overflow checks on integer arithmetic, and intended for usage when the user is “reasonably sure” that conversion will succeed.
  • Conv::try_conv is for fallible conversions, and always produces an error if the conversion would be inexact.

Required methods

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

Convert from T to Self

fn try_conv(v: T) -> Result<Self, Error>[src]

Try converting from T to Self

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<i8> for usize[src]

impl Conv<i16> for isize[src]

impl Conv<i16> for usize[src]

impl Conv<i32> for isize[src]

impl Conv<i32> for usize[src]

impl Conv<i64> for isize[src]

impl Conv<i64> for usize[src]

impl Conv<i128> for isize[src]

impl Conv<i128> for usize[src]

impl Conv<u8> for isize[src]

impl Conv<u8> for usize[src]

impl Conv<u16> for isize[src]

impl Conv<u16> for usize[src]

impl Conv<u32> for isize[src]

impl Conv<u32> for usize[src]

impl Conv<u64> for isize[src]

impl Conv<u64> for usize[src]

impl Conv<u128> for isize[src]

impl Conv<u128> for usize[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<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<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<u32> for f32[src]

impl Conv<u64> for f32[src]

impl Conv<u64> for f64[src]

impl Conv<u128> for f32[src]

impl Conv<u128> for f64[src]

impl Conv<usize> for f32[src]

impl Conv<usize> for f64[src]

impl Conv<i32> for f32[src]

impl Conv<i64> for f32[src]

impl Conv<i64> for f64[src]

impl Conv<i128> for f32[src]

impl Conv<i128> for f64[src]

impl Conv<isize> for f32[src]

impl Conv<isize> for f64[src]

Loading content...

Implementors

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

Loading content...