Trait PrimitiveFrom

Source
pub trait PrimitiveFrom<T> {
    // Required method
    fn from(_: T) -> Self;
}
Expand description

A generic interface for casting between machine scalars with the as operator, which admits narrowing and precision loss. Implementers of this trait PrimitiveFrom should behave like a primitive numeric type (e.g. a newtype around another primitive), and the intended conversion must never fail.

§Examples

let three: i32 = PrimitiveFrom::from(3.14159265f32);
assert_eq!(three, 3);

§Safety

Currently, some uses of the as operator are not entirely safe. In particular, it is undefined behavior if:

  • A truncated floating point value cannot fit in the target integer type (#10184);
let x: u8 = PrimitiveFrom::from(1.04E+17); // UB
  • Or a floating point value does not fit in another floating point type (#15536).
let x: f32 = PrimitiveFrom::from(1e300f64); // UB

Required Methods§

Source

fn from(_: T) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl PrimitiveFrom<bool> for i8

Source§

fn from(a: bool) -> i8

Source§

impl PrimitiveFrom<bool> for i16

Source§

impl PrimitiveFrom<bool> for i32

Source§

impl PrimitiveFrom<bool> for i64

Source§

impl PrimitiveFrom<bool> for isize

Source§

impl PrimitiveFrom<bool> for u8

Source§

fn from(a: bool) -> u8

Source§

impl PrimitiveFrom<bool> for u16

Source§

impl PrimitiveFrom<bool> for u32

Source§

impl PrimitiveFrom<bool> for u64

Source§

impl PrimitiveFrom<bool> for usize

Source§

impl PrimitiveFrom<char> for char

Source§

impl PrimitiveFrom<char> for i8

Source§

fn from(a: char) -> i8

Source§

impl PrimitiveFrom<char> for i16

Source§

impl PrimitiveFrom<char> for i32

Source§

impl PrimitiveFrom<char> for i64

Source§

impl PrimitiveFrom<char> for isize

Source§

impl PrimitiveFrom<char> for u8

Source§

fn from(a: char) -> u8

Source§

impl PrimitiveFrom<char> for u16

Source§

impl PrimitiveFrom<char> for u32

Source§

impl PrimitiveFrom<char> for u64

Source§

impl PrimitiveFrom<char> for usize

Source§

impl PrimitiveFrom<f32> for f32

Source§

fn from(a: f32) -> f32

Source§

impl PrimitiveFrom<f32> for f64

Source§

fn from(a: f32) -> f64

Source§

impl PrimitiveFrom<f32> for i8

Source§

fn from(a: f32) -> i8

Source§

impl PrimitiveFrom<f32> for i16

Source§

fn from(a: f32) -> i16

Source§

impl PrimitiveFrom<f32> for i32

Source§

fn from(a: f32) -> i32

Source§

impl PrimitiveFrom<f32> for i64

Source§

fn from(a: f32) -> i64

Source§

impl PrimitiveFrom<f32> for isize

Source§

impl PrimitiveFrom<f32> for u8

Source§

fn from(a: f32) -> u8

Source§

impl PrimitiveFrom<f32> for u16

Source§

fn from(a: f32) -> u16

Source§

impl PrimitiveFrom<f32> for u32

Source§

fn from(a: f32) -> u32

Source§

impl PrimitiveFrom<f32> for u64

Source§

fn from(a: f32) -> u64

Source§

impl PrimitiveFrom<f32> for usize

Source§

impl PrimitiveFrom<f64> for f32

Source§

fn from(a: f64) -> f32

Source§

impl PrimitiveFrom<f64> for f64

Source§

fn from(a: f64) -> f64

Source§

impl PrimitiveFrom<f64> for i8

Source§

fn from(a: f64) -> i8

Source§

impl PrimitiveFrom<f64> for i16

Source§

fn from(a: f64) -> i16

Source§

impl PrimitiveFrom<f64> for i32

Source§

fn from(a: f64) -> i32

Source§

impl PrimitiveFrom<f64> for i64

Source§

fn from(a: f64) -> i64

Source§

impl PrimitiveFrom<f64> for isize

Source§

impl PrimitiveFrom<f64> for u8

Source§

fn from(a: f64) -> u8

Source§

impl PrimitiveFrom<f64> for u16

Source§

fn from(a: f64) -> u16

Source§

impl PrimitiveFrom<f64> for u32

Source§

fn from(a: f64) -> u32

Source§

impl PrimitiveFrom<f64> for u64

Source§

fn from(a: f64) -> u64

Source§

impl PrimitiveFrom<f64> for usize

Source§

impl PrimitiveFrom<i8> for f32

Source§

fn from(a: i8) -> f32

Source§

impl PrimitiveFrom<i8> for f64

Source§

fn from(a: i8) -> f64

Source§

impl PrimitiveFrom<i8> for i8

Source§

fn from(a: i8) -> i8

Source§

impl PrimitiveFrom<i8> for i16

Source§

fn from(a: i8) -> i16

Source§

impl PrimitiveFrom<i8> for i32

Source§

fn from(a: i8) -> i32

Source§

impl PrimitiveFrom<i8> for i64

Source§

fn from(a: i8) -> i64

Source§

impl PrimitiveFrom<i8> for isize

Source§

impl PrimitiveFrom<i8> for u8

Source§

fn from(a: i8) -> u8

Source§

impl PrimitiveFrom<i8> for u16

Source§

fn from(a: i8) -> u16

Source§

impl PrimitiveFrom<i8> for u32

Source§

fn from(a: i8) -> u32

Source§

impl PrimitiveFrom<i8> for u64

Source§

fn from(a: i8) -> u64

Source§

impl PrimitiveFrom<i8> for usize

Source§

impl PrimitiveFrom<i16> for f32

Source§

fn from(a: i16) -> f32

Source§

impl PrimitiveFrom<i16> for f64

Source§

fn from(a: i16) -> f64

Source§

impl PrimitiveFrom<i16> for i8

Source§

fn from(a: i16) -> i8

Source§

impl PrimitiveFrom<i16> for i16

Source§

fn from(a: i16) -> i16

Source§

impl PrimitiveFrom<i16> for i32

Source§

fn from(a: i16) -> i32

Source§

impl PrimitiveFrom<i16> for i64

Source§

fn from(a: i16) -> i64

Source§

impl PrimitiveFrom<i16> for isize

Source§

impl PrimitiveFrom<i16> for u8

Source§

fn from(a: i16) -> u8

Source§

impl PrimitiveFrom<i16> for u16

Source§

fn from(a: i16) -> u16

Source§

impl PrimitiveFrom<i16> for u32

Source§

fn from(a: i16) -> u32

Source§

impl PrimitiveFrom<i16> for u64

Source§

fn from(a: i16) -> u64

Source§

impl PrimitiveFrom<i16> for usize

Source§

impl PrimitiveFrom<i32> for f32

Source§

fn from(a: i32) -> f32

Source§

impl PrimitiveFrom<i32> for f64

Source§

fn from(a: i32) -> f64

Source§

impl PrimitiveFrom<i32> for i8

Source§

fn from(a: i32) -> i8

Source§

impl PrimitiveFrom<i32> for i16

Source§

fn from(a: i32) -> i16

Source§

impl PrimitiveFrom<i32> for i32

Source§

fn from(a: i32) -> i32

Source§

impl PrimitiveFrom<i32> for i64

Source§

fn from(a: i32) -> i64

Source§

impl PrimitiveFrom<i32> for isize

Source§

impl PrimitiveFrom<i32> for u8

Source§

fn from(a: i32) -> u8

Source§

impl PrimitiveFrom<i32> for u16

Source§

fn from(a: i32) -> u16

Source§

impl PrimitiveFrom<i32> for u32

Source§

fn from(a: i32) -> u32

Source§

impl PrimitiveFrom<i32> for u64

Source§

fn from(a: i32) -> u64

Source§

impl PrimitiveFrom<i32> for usize

Source§

impl PrimitiveFrom<i64> for f32

Source§

fn from(a: i64) -> f32

Source§

impl PrimitiveFrom<i64> for f64

Source§

fn from(a: i64) -> f64

Source§

impl PrimitiveFrom<i64> for i8

Source§

fn from(a: i64) -> i8

Source§

impl PrimitiveFrom<i64> for i16

Source§

fn from(a: i64) -> i16

Source§

impl PrimitiveFrom<i64> for i32

Source§

fn from(a: i64) -> i32

Source§

impl PrimitiveFrom<i64> for i64

Source§

fn from(a: i64) -> i64

Source§

impl PrimitiveFrom<i64> for isize

Source§

impl PrimitiveFrom<i64> for u8

Source§

fn from(a: i64) -> u8

Source§

impl PrimitiveFrom<i64> for u16

Source§

fn from(a: i64) -> u16

Source§

impl PrimitiveFrom<i64> for u32

Source§

fn from(a: i64) -> u32

Source§

impl PrimitiveFrom<i64> for u64

Source§

fn from(a: i64) -> u64

Source§

impl PrimitiveFrom<i64> for usize

Source§

impl PrimitiveFrom<isize> for f32

Source§

impl PrimitiveFrom<isize> for f64

Source§

impl PrimitiveFrom<isize> for i8

Source§

impl PrimitiveFrom<isize> for i16

Source§

impl PrimitiveFrom<isize> for i32

Source§

impl PrimitiveFrom<isize> for i64

Source§

impl PrimitiveFrom<isize> for isize

Source§

impl PrimitiveFrom<isize> for u8

Source§

impl PrimitiveFrom<isize> for u16

Source§

impl PrimitiveFrom<isize> for u32

Source§

impl PrimitiveFrom<isize> for u64

Source§

impl PrimitiveFrom<isize> for usize

Source§

impl PrimitiveFrom<u8> for char

Source§

fn from(a: u8) -> char

Source§

impl PrimitiveFrom<u8> for f32

Source§

fn from(a: u8) -> f32

Source§

impl PrimitiveFrom<u8> for f64

Source§

fn from(a: u8) -> f64

Source§

impl PrimitiveFrom<u8> for i8

Source§

fn from(a: u8) -> i8

Source§

impl PrimitiveFrom<u8> for i16

Source§

fn from(a: u8) -> i16

Source§

impl PrimitiveFrom<u8> for i32

Source§

fn from(a: u8) -> i32

Source§

impl PrimitiveFrom<u8> for i64

Source§

fn from(a: u8) -> i64

Source§

impl PrimitiveFrom<u8> for isize

Source§

impl PrimitiveFrom<u8> for u8

Source§

fn from(a: u8) -> u8

Source§

impl PrimitiveFrom<u8> for u16

Source§

fn from(a: u8) -> u16

Source§

impl PrimitiveFrom<u8> for u32

Source§

fn from(a: u8) -> u32

Source§

impl PrimitiveFrom<u8> for u64

Source§

fn from(a: u8) -> u64

Source§

impl PrimitiveFrom<u8> for usize

Source§

impl PrimitiveFrom<u16> for f32

Source§

fn from(a: u16) -> f32

Source§

impl PrimitiveFrom<u16> for f64

Source§

fn from(a: u16) -> f64

Source§

impl PrimitiveFrom<u16> for i8

Source§

fn from(a: u16) -> i8

Source§

impl PrimitiveFrom<u16> for i16

Source§

fn from(a: u16) -> i16

Source§

impl PrimitiveFrom<u16> for i32

Source§

fn from(a: u16) -> i32

Source§

impl PrimitiveFrom<u16> for i64

Source§

fn from(a: u16) -> i64

Source§

impl PrimitiveFrom<u16> for isize

Source§

impl PrimitiveFrom<u16> for u8

Source§

fn from(a: u16) -> u8

Source§

impl PrimitiveFrom<u16> for u16

Source§

fn from(a: u16) -> u16

Source§

impl PrimitiveFrom<u16> for u32

Source§

fn from(a: u16) -> u32

Source§

impl PrimitiveFrom<u16> for u64

Source§

fn from(a: u16) -> u64

Source§

impl PrimitiveFrom<u16> for usize

Source§

impl PrimitiveFrom<u32> for f32

Source§

fn from(a: u32) -> f32

Source§

impl PrimitiveFrom<u32> for f64

Source§

fn from(a: u32) -> f64

Source§

impl PrimitiveFrom<u32> for i8

Source§

fn from(a: u32) -> i8

Source§

impl PrimitiveFrom<u32> for i16

Source§

fn from(a: u32) -> i16

Source§

impl PrimitiveFrom<u32> for i32

Source§

fn from(a: u32) -> i32

Source§

impl PrimitiveFrom<u32> for i64

Source§

fn from(a: u32) -> i64

Source§

impl PrimitiveFrom<u32> for isize

Source§

impl PrimitiveFrom<u32> for u8

Source§

fn from(a: u32) -> u8

Source§

impl PrimitiveFrom<u32> for u16

Source§

fn from(a: u32) -> u16

Source§

impl PrimitiveFrom<u32> for u32

Source§

fn from(a: u32) -> u32

Source§

impl PrimitiveFrom<u32> for u64

Source§

fn from(a: u32) -> u64

Source§

impl PrimitiveFrom<u32> for usize

Source§

impl PrimitiveFrom<u64> for f32

Source§

fn from(a: u64) -> f32

Source§

impl PrimitiveFrom<u64> for f64

Source§

fn from(a: u64) -> f64

Source§

impl PrimitiveFrom<u64> for i8

Source§

fn from(a: u64) -> i8

Source§

impl PrimitiveFrom<u64> for i16

Source§

fn from(a: u64) -> i16

Source§

impl PrimitiveFrom<u64> for i32

Source§

fn from(a: u64) -> i32

Source§

impl PrimitiveFrom<u64> for i64

Source§

fn from(a: u64) -> i64

Source§

impl PrimitiveFrom<u64> for isize

Source§

impl PrimitiveFrom<u64> for u8

Source§

fn from(a: u64) -> u8

Source§

impl PrimitiveFrom<u64> for u16

Source§

fn from(a: u64) -> u16

Source§

impl PrimitiveFrom<u64> for u32

Source§

fn from(a: u64) -> u32

Source§

impl PrimitiveFrom<u64> for u64

Source§

fn from(a: u64) -> u64

Source§

impl PrimitiveFrom<u64> for usize

Source§

impl PrimitiveFrom<usize> for f32

Source§

impl PrimitiveFrom<usize> for f64

Source§

impl PrimitiveFrom<usize> for i8

Source§

impl PrimitiveFrom<usize> for i16

Source§

impl PrimitiveFrom<usize> for i32

Source§

impl PrimitiveFrom<usize> for i64

Source§

impl PrimitiveFrom<usize> for isize

Source§

impl PrimitiveFrom<usize> for u8

Source§

impl PrimitiveFrom<usize> for u16

Source§

impl PrimitiveFrom<usize> for u32

Source§

impl PrimitiveFrom<usize> for u64

Source§

impl PrimitiveFrom<usize> for usize

Implementors§