Trait sp_std::convert::TryFrom1.34.0[][src]

pub trait TryFrom<T> {
    type Error;
    pub fn try_from(value: T) -> Result<Self, Self::Error>;
}

Simple and safe type conversions that may fail in a controlled way under some circumstances. It is the reciprocal of TryInto.

This is useful when you are doing a type conversion that may trivially succeed but may also need special handling. For example, there is no way to convert an i64 into an i32 using the From trait, because an i64 may contain a value that an i32 cannot represent and so the conversion would lose data. This might be handled by truncating the i64 to an i32 (essentially giving the i64’s value modulo i32::MAX) or by simply returning i32::MAX, or by some other method. The From trait is intended for perfect conversions, so the TryFrom trait informs the programmer when a type conversion could go bad and lets them decide how to handle it.

Generic Implementations

TryFrom<T> can be implemented as follows:

use std::convert::TryFrom;

struct GreaterThanZero(i32);

impl TryFrom<i32> for GreaterThanZero {
    type Error = &'static str;

    fn try_from(value: i32) -> Result<Self, Self::Error> {
        if value <= 0 {
            Err("GreaterThanZero only accepts value superior than zero!")
        } else {
            Ok(GreaterThanZero(value))
        }
    }
}

Examples

As described, i32 implements TryFrom<i64>:

use std::convert::TryFrom;

let big_number = 1_000_000_000_000i64;
// Silently truncates `big_number`, requires detecting
// and handling the truncation after the fact.
let smaller_number = big_number as i32;
assert_eq!(smaller_number, -727379968);

// Returns an error because `big_number` is too big to
// fit in an `i32`.
let try_smaller_number = i32::try_from(big_number);
assert!(try_smaller_number.is_err());

// Returns `Ok(3)`.
let try_successful_smaller_number = i32::try_from(3);
assert!(try_successful_smaller_number.is_ok());

Associated Types

type Error[src]

The type returned in the event of a conversion error.

Loading content...

Required methods

pub fn try_from(value: T) -> Result<Self, Self::Error>[src]

Performs the conversion.

Loading content...

Implementations on Foreign Types

impl TryFrom<u64> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<i16, <i16 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<usize, <usize as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<i8, <i8 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<u16, <u16 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<i16, <i16 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: u32) -> Result<u16, <u16 as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for i128[src]

type Error = TryFromIntError

pub fn try_from(value: usize) -> Result<i128, <i128 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<usize, <usize as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for i64[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<i64, <i64 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for isize[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<isize, <isize as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<usize, <usize as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<u64, <u64 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<i8, <i8 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<u32, <u32 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<u8, <u8 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<u64, <u64 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: u32) -> Result<i8, <i8 as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: u32) -> Result<i16, <i16 as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<u32, <u32 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<i8, <i8 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<i16, <i16 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for isize[src]

type Error = TryFromIntError

pub fn try_from(value: i32) -> Result<isize, <isize as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<i8, <i8 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for usize[src]

type Error = TryFromIntError

pub fn try_from(value: u64) -> Result<usize, <usize as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<u32, <u32 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for i64[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<i64, <i64 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<u16, <u16 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<u8, <u8 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<u32, <u32 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<u16, <u16 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<u16, <u16 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for isize[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<isize, <isize as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<i32, <i32 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<u8, <u8 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for usize[src]

type Error = TryFromIntError

pub fn try_from(value: u32) -> Result<usize, <usize as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for u128[src]

type Error = TryFromIntError

pub fn try_from(value: usize) -> Result<u128, <u128 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for isize[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<isize, <isize as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for isize[src]

type Error = TryFromIntError

pub fn try_from(value: u32) -> Result<isize, <isize as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for isize[src]

type Error = TryFromIntError

pub fn try_from(value: i64) -> Result<isize, <isize as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<i32, <i32 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<i16, <i16 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<u8, <u8 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<i32, <i32 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<u64, <u64 as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for i64[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<i64, <i64 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<u32, <u32 as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for u64[src]

type Error = TryFromIntError

pub fn try_from(value: usize) -> Result<u64, <u64 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for char[src]

type Error = CharTryFromError

impl TryFrom<i32> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<u128, <u128 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<u128, <u128 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<u32, <u32 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<u16, <u16 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<i8, <i8 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for i128[src]

type Error = TryFromIntError

pub fn try_from(value: isize) -> Result<i128, <i128 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<u16, <u16 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<u16, <u16 as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<u64, <u64 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<u16, <u16 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u16> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: u16) -> Result<i8, <i8 as TryFrom<u16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<usize> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: usize) -> Result<i16, <i16 as TryFrom<usize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<i8, <i8 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<u64, <u64 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for i64[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<i64, <i64 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<i8, <i8 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<u8, <u8 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<i8, <i8 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i16> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<u32, <u32 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: u32) -> Result<i32, <i32 as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<u8, <u8 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<i32, <i32 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for i128[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<i128, <i128 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<usize, <usize as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<u128, <u128 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<u32, <u32 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<u8, <u8 as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u64> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: u64) -> Result<i32, <i32 as TryFrom<u64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<u128, <u128 as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u8> for i8[src]

type Error = TryFromIntError

pub fn try_from(u: u8) -> Result<i8, <i8 as TryFrom<u8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl<'_, T, const N: usize> TryFrom<&'_ [T]> for [T; N] where
    T: Copy
[src]

type Error = TryFromSliceError

impl TryFrom<i16> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: i16) -> Result<u8, <u8 as TryFrom<i16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<u64, <u64 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for i64[src]

type Error = TryFromIntError

pub fn try_from(value: isize) -> Result<i64, <i64 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u16> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: u16) -> Result<u8, <u8 as TryFrom<u16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<usize, <usize as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl<'a, T, const N: usize> TryFrom<&'a [T]> for &'a [T; N][src]

type Error = TryFromSliceError

impl TryFrom<i32> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<usize, <usize as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for u64[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<u64, <u64 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<i16, <i16 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl<'a, T, const N: usize> TryFrom<&'a mut [T]> for &'a mut [T; N][src]

type Error = TryFromSliceError

impl TryFrom<u128> for isize[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<isize, <isize as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u16> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: u16) -> Result<i16, <i16 as TryFrom<u16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u128> for u16[src]

type Error = TryFromIntError

pub fn try_from(u: u128) -> Result<u16, <u16 as TryFrom<u128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u32> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: u32) -> Result<u8, <u8 as TryFrom<u32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<u128, <u128 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for i16[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<i16, <i16 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i128> for u128[src]

type Error = TryFromIntError

pub fn try_from(u: i128) -> Result<u128, <u128 as TryFrom<i128>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i8> for usize[src]

type Error = TryFromIntError

pub fn try_from(u: i8) -> Result<usize, <usize as TryFrom<i8>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<isize> for i32[src]

type Error = TryFromIntError

pub fn try_from(u: isize) -> Result<i32, <i32 as TryFrom<isize>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i32> for u32[src]

type Error = TryFromIntError

pub fn try_from(u: i32) -> Result<u32, <u32 as TryFrom<i32>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<u16> for isize[src]

type Error = TryFromIntError

pub fn try_from(value: u16) -> Result<isize, <isize as TryFrom<u16>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl TryFrom<i64> for u8[src]

type Error = TryFromIntError

pub fn try_from(u: i64) -> Result<u8, <u8 as TryFrom<i64>>::Error>[src]

Try to create the target number type from a source number type. This returns an error if the source value is outside of the range of the target type.

impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N] where
    A: Allocator
[src]

type Error = Vec<T, A>

pub fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>[src]

Gets the entire contents of the Vec<T> as an array, if its size exactly matches that of the requested array.

Examples

use std::convert::TryInto;
assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));
assert_eq!(<Vec<i32>>::new().try_into(), Ok([]));

If the length doesn’t match, the input comes back in Err:

use std::convert::TryInto;
let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();
assert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));

If you’re fine with just getting a prefix of the Vec<T>, you can call .truncate(N) first.

use std::convert::TryInto;
let mut v = String::from("hello world").into_bytes();
v.sort();
v.truncate(2);
let [a, b]: [_; 2] = v.try_into().unwrap();
assert_eq!(a, b' ');
assert_eq!(b, b'd');
Loading content...

Implementors

impl TryFrom<i8> for NonZeroI81.46.0[src]

Attempts to convert i8 to NonZeroI8.

type Error = TryFromIntError

impl TryFrom<i16> for NonZeroI161.46.0[src]

Attempts to convert i16 to NonZeroI16.

impl TryFrom<i32> for NonZeroI321.46.0[src]

Attempts to convert i32 to NonZeroI32.

impl TryFrom<i64> for NonZeroI641.46.0[src]

Attempts to convert i64 to NonZeroI64.

impl TryFrom<i128> for NonZeroI1281.46.0[src]

Attempts to convert i128 to NonZeroI128.

impl TryFrom<isize> for NonZeroIsize1.46.0[src]

Attempts to convert isize to NonZeroIsize.

impl TryFrom<u8> for NonZeroU81.46.0[src]

Attempts to convert u8 to NonZeroU8.

type Error = TryFromIntError

impl TryFrom<u16> for NonZeroU161.46.0[src]

Attempts to convert u16 to NonZeroU16.

impl TryFrom<u32> for NonZeroU321.46.0[src]

Attempts to convert u32 to NonZeroU32.

impl TryFrom<u64> for NonZeroU641.46.0[src]

Attempts to convert u64 to NonZeroU64.

impl TryFrom<u128> for NonZeroU1281.46.0[src]

Attempts to convert u128 to NonZeroU128.

impl TryFrom<usize> for NonZeroUsize1.46.0[src]

Attempts to convert usize to NonZeroUsize.

impl TryFrom<NonZeroI8> for NonZeroU81.49.0[src]

Attempts to convert NonZeroI8 to NonZeroU8.

impl TryFrom<NonZeroI8> for NonZeroU161.49.0[src]

Attempts to convert NonZeroI8 to NonZeroU16.

impl TryFrom<NonZeroI8> for NonZeroU321.49.0[src]

Attempts to convert NonZeroI8 to NonZeroU32.

impl TryFrom<NonZeroI8> for NonZeroU641.49.0[src]

Attempts to convert NonZeroI8 to NonZeroU64.

impl TryFrom<NonZeroI8> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroI8 to NonZeroU128.

impl TryFrom<NonZeroI8> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroI8 to NonZeroUsize.

impl TryFrom<NonZeroI16> for NonZeroI81.49.0[src]

Attempts to convert NonZeroI16 to NonZeroI8.

impl TryFrom<NonZeroI16> for NonZeroU81.49.0[src]

Attempts to convert NonZeroI16 to NonZeroU8.

impl TryFrom<NonZeroI16> for NonZeroU161.49.0[src]

Attempts to convert NonZeroI16 to NonZeroU16.

impl TryFrom<NonZeroI16> for NonZeroU321.49.0[src]

Attempts to convert NonZeroI16 to NonZeroU32.

impl TryFrom<NonZeroI16> for NonZeroU641.49.0[src]

Attempts to convert NonZeroI16 to NonZeroU64.

impl TryFrom<NonZeroI16> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroI16 to NonZeroU128.

impl TryFrom<NonZeroI16> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroI16 to NonZeroUsize.

impl TryFrom<NonZeroI32> for NonZeroI81.49.0[src]

Attempts to convert NonZeroI32 to NonZeroI8.

impl TryFrom<NonZeroI32> for NonZeroI161.49.0[src]

Attempts to convert NonZeroI32 to NonZeroI16.

impl TryFrom<NonZeroI32> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroI32 to NonZeroIsize.

impl TryFrom<NonZeroI32> for NonZeroU81.49.0[src]

Attempts to convert NonZeroI32 to NonZeroU8.

impl TryFrom<NonZeroI32> for NonZeroU161.49.0[src]

Attempts to convert NonZeroI32 to NonZeroU16.

impl TryFrom<NonZeroI32> for NonZeroU321.49.0[src]

Attempts to convert NonZeroI32 to NonZeroU32.

impl TryFrom<NonZeroI32> for NonZeroU641.49.0[src]

Attempts to convert NonZeroI32 to NonZeroU64.

impl TryFrom<NonZeroI32> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroI32 to NonZeroU128.

impl TryFrom<NonZeroI32> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroI32 to NonZeroUsize.

impl TryFrom<NonZeroI64> for NonZeroI81.49.0[src]

Attempts to convert NonZeroI64 to NonZeroI8.

impl TryFrom<NonZeroI64> for NonZeroI161.49.0[src]

Attempts to convert NonZeroI64 to NonZeroI16.

impl TryFrom<NonZeroI64> for NonZeroI321.49.0[src]

Attempts to convert NonZeroI64 to NonZeroI32.

impl TryFrom<NonZeroI64> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroI64 to NonZeroIsize.

impl TryFrom<NonZeroI64> for NonZeroU81.49.0[src]

Attempts to convert NonZeroI64 to NonZeroU8.

impl TryFrom<NonZeroI64> for NonZeroU161.49.0[src]

Attempts to convert NonZeroI64 to NonZeroU16.

impl TryFrom<NonZeroI64> for NonZeroU321.49.0[src]

Attempts to convert NonZeroI64 to NonZeroU32.

impl TryFrom<NonZeroI64> for NonZeroU641.49.0[src]

Attempts to convert NonZeroI64 to NonZeroU64.

impl TryFrom<NonZeroI64> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroI64 to NonZeroU128.

impl TryFrom<NonZeroI64> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroI64 to NonZeroUsize.

impl TryFrom<NonZeroI128> for NonZeroI81.49.0[src]

Attempts to convert NonZeroI128 to NonZeroI8.

impl TryFrom<NonZeroI128> for NonZeroI161.49.0[src]

Attempts to convert NonZeroI128 to NonZeroI16.

impl TryFrom<NonZeroI128> for NonZeroI321.49.0[src]

Attempts to convert NonZeroI128 to NonZeroI32.

impl TryFrom<NonZeroI128> for NonZeroI641.49.0[src]

Attempts to convert NonZeroI128 to NonZeroI64.

impl TryFrom<NonZeroI128> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroI128 to NonZeroIsize.

impl TryFrom<NonZeroI128> for NonZeroU81.49.0[src]

Attempts to convert NonZeroI128 to NonZeroU8.

impl TryFrom<NonZeroI128> for NonZeroU161.49.0[src]

Attempts to convert NonZeroI128 to NonZeroU16.

impl TryFrom<NonZeroI128> for NonZeroU321.49.0[src]

Attempts to convert NonZeroI128 to NonZeroU32.

impl TryFrom<NonZeroI128> for NonZeroU641.49.0[src]

Attempts to convert NonZeroI128 to NonZeroU64.

impl TryFrom<NonZeroI128> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroI128 to NonZeroU128.

impl TryFrom<NonZeroI128> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroI128 to NonZeroUsize.

impl TryFrom<NonZeroIsize> for NonZeroI81.49.0[src]

Attempts to convert NonZeroIsize to NonZeroI8.

impl TryFrom<NonZeroIsize> for NonZeroI161.49.0[src]

Attempts to convert NonZeroIsize to NonZeroI16.

impl TryFrom<NonZeroIsize> for NonZeroI321.49.0[src]

Attempts to convert NonZeroIsize to NonZeroI32.

impl TryFrom<NonZeroIsize> for NonZeroI641.49.0[src]

Attempts to convert NonZeroIsize to NonZeroI64.

impl TryFrom<NonZeroIsize> for NonZeroI1281.49.0[src]

Attempts to convert NonZeroIsize to NonZeroI128.

impl TryFrom<NonZeroIsize> for NonZeroU81.49.0[src]

Attempts to convert NonZeroIsize to NonZeroU8.

impl TryFrom<NonZeroIsize> for NonZeroU161.49.0[src]

Attempts to convert NonZeroIsize to NonZeroU16.

impl TryFrom<NonZeroIsize> for NonZeroU321.49.0[src]

Attempts to convert NonZeroIsize to NonZeroU32.

impl TryFrom<NonZeroIsize> for NonZeroU641.49.0[src]

Attempts to convert NonZeroIsize to NonZeroU64.

impl TryFrom<NonZeroIsize> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroIsize to NonZeroU128.

impl TryFrom<NonZeroIsize> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroIsize to NonZeroUsize.

impl TryFrom<NonZeroU8> for NonZeroI81.49.0[src]

Attempts to convert NonZeroU8 to NonZeroI8.

impl TryFrom<NonZeroU16> for NonZeroI81.49.0[src]

Attempts to convert NonZeroU16 to NonZeroI8.

impl TryFrom<NonZeroU16> for NonZeroI161.49.0[src]

Attempts to convert NonZeroU16 to NonZeroI16.

impl TryFrom<NonZeroU16> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroU16 to NonZeroIsize.

impl TryFrom<NonZeroU16> for NonZeroU81.49.0[src]

Attempts to convert NonZeroU16 to NonZeroU8.

impl TryFrom<NonZeroU32> for NonZeroI81.49.0[src]

Attempts to convert NonZeroU32 to NonZeroI8.

impl TryFrom<NonZeroU32> for NonZeroI161.49.0[src]

Attempts to convert NonZeroU32 to NonZeroI16.

impl TryFrom<NonZeroU32> for NonZeroI321.49.0[src]

Attempts to convert NonZeroU32 to NonZeroI32.

impl TryFrom<NonZeroU32> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroU32 to NonZeroIsize.

impl TryFrom<NonZeroU32> for NonZeroU81.49.0[src]

Attempts to convert NonZeroU32 to NonZeroU8.

impl TryFrom<NonZeroU32> for NonZeroU161.49.0[src]

Attempts to convert NonZeroU32 to NonZeroU16.

impl TryFrom<NonZeroU32> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroU32 to NonZeroUsize.

impl TryFrom<NonZeroU64> for NonZeroI81.49.0[src]

Attempts to convert NonZeroU64 to NonZeroI8.

impl TryFrom<NonZeroU64> for NonZeroI161.49.0[src]

Attempts to convert NonZeroU64 to NonZeroI16.

impl TryFrom<NonZeroU64> for NonZeroI321.49.0[src]

Attempts to convert NonZeroU64 to NonZeroI32.

impl TryFrom<NonZeroU64> for NonZeroI641.49.0[src]

Attempts to convert NonZeroU64 to NonZeroI64.

impl TryFrom<NonZeroU64> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroU64 to NonZeroIsize.

impl TryFrom<NonZeroU64> for NonZeroU81.49.0[src]

Attempts to convert NonZeroU64 to NonZeroU8.

impl TryFrom<NonZeroU64> for NonZeroU161.49.0[src]

Attempts to convert NonZeroU64 to NonZeroU16.

impl TryFrom<NonZeroU64> for NonZeroU321.49.0[src]

Attempts to convert NonZeroU64 to NonZeroU32.

impl TryFrom<NonZeroU64> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroU64 to NonZeroUsize.

impl TryFrom<NonZeroU128> for NonZeroI81.49.0[src]

Attempts to convert NonZeroU128 to NonZeroI8.

impl TryFrom<NonZeroU128> for NonZeroI161.49.0[src]

Attempts to convert NonZeroU128 to NonZeroI16.

impl TryFrom<NonZeroU128> for NonZeroI321.49.0[src]

Attempts to convert NonZeroU128 to NonZeroI32.

impl TryFrom<NonZeroU128> for NonZeroI641.49.0[src]

Attempts to convert NonZeroU128 to NonZeroI64.

impl TryFrom<NonZeroU128> for NonZeroI1281.49.0[src]

Attempts to convert NonZeroU128 to NonZeroI128.

impl TryFrom<NonZeroU128> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroU128 to NonZeroIsize.

impl TryFrom<NonZeroU128> for NonZeroU81.49.0[src]

Attempts to convert NonZeroU128 to NonZeroU8.

impl TryFrom<NonZeroU128> for NonZeroU161.49.0[src]

Attempts to convert NonZeroU128 to NonZeroU16.

impl TryFrom<NonZeroU128> for NonZeroU321.49.0[src]

Attempts to convert NonZeroU128 to NonZeroU32.

impl TryFrom<NonZeroU128> for NonZeroU641.49.0[src]

Attempts to convert NonZeroU128 to NonZeroU64.

impl TryFrom<NonZeroU128> for NonZeroUsize1.49.0[src]

Attempts to convert NonZeroU128 to NonZeroUsize.

impl TryFrom<NonZeroUsize> for NonZeroI81.49.0[src]

Attempts to convert NonZeroUsize to NonZeroI8.

impl TryFrom<NonZeroUsize> for NonZeroI161.49.0[src]

Attempts to convert NonZeroUsize to NonZeroI16.

impl TryFrom<NonZeroUsize> for NonZeroI321.49.0[src]

Attempts to convert NonZeroUsize to NonZeroI32.

impl TryFrom<NonZeroUsize> for NonZeroI641.49.0[src]

Attempts to convert NonZeroUsize to NonZeroI64.

impl TryFrom<NonZeroUsize> for NonZeroI1281.49.0[src]

Attempts to convert NonZeroUsize to NonZeroI128.

impl TryFrom<NonZeroUsize> for NonZeroIsize1.49.0[src]

Attempts to convert NonZeroUsize to NonZeroIsize.

impl TryFrom<NonZeroUsize> for NonZeroU81.49.0[src]

Attempts to convert NonZeroUsize to NonZeroU8.

impl TryFrom<NonZeroUsize> for NonZeroU161.49.0[src]

Attempts to convert NonZeroUsize to NonZeroU16.

impl TryFrom<NonZeroUsize> for NonZeroU321.49.0[src]

Attempts to convert NonZeroUsize to NonZeroU32.

impl TryFrom<NonZeroUsize> for NonZeroU641.49.0[src]

Attempts to convert NonZeroUsize to NonZeroU64.

impl TryFrom<NonZeroUsize> for NonZeroU1281.49.0[src]

Attempts to convert NonZeroUsize to NonZeroU128.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

impl<T, const N: usize> TryFrom<Box<[T], Global>> for Box<[T; N], Global>1.43.0[src]

type Error = Box<[T], Global>

impl<T, const N: usize> TryFrom<Rc<[T]>> for Rc<[T; N]>1.43.0[src]

type Error = Rc<[T]>

impl<T, const N: usize> TryFrom<Arc<[T]>> for Arc<[T; N]>1.43.0[src]

type Error = Arc<[T]>

Loading content...