TryFrom in std::convert - Rust
Description: Simple and safe type conversions that may fail in a controlled way under some circumstances. It is the reciprocal of `TryInto`.

## TryFrom

# Trait TryFrom

1.34.0 (const: unstable) · Source

    pub trait TryFrom<T>: Sized {
        type Error;

        // Required method
        fn try_from(value: T) -> Result<Self, Self::Error>;
    }

Expand description

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` 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> for U` implies `TryInto``<U> for T`
- `try_from` is reflexive, which means that `TryFrom<T> for T` is implemented and cannot fail – the associated `Error` type for calling `T::try_from()` on a value of type `T` is `Infallible`. When the `!` type is stabilized `Infallible` and `!` will be equivalent.

Prefer using `TryInto` over `TryFrom` when specifying trait bounds on a generic function to ensure that types that only implement `TryInto` can be used as well.

`TryFrom<T>` can be implemented as follows:

    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 values greater than zero!")
            } else {
                Ok(GreaterThanZero(value))
            }
        }
    }

## §Examples

As described, `i32` implements `TryFrom<``i64``>`:

    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());

## Required Associated Types§

1.34.0 · Source

#### type Error

The type returned in the event of a conversion error.

## Required Methods§

1.34.0 · Source

#### fn try_from(value: T) -> Result<Self, Self::Error>

Performs the conversion.

## 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.

## Implementors§

1.59.0 (const: unstable) · Source§

### impl TryFrom<char> for u8

Maps a `char` with a code point from U+0000 to U+00FF (inclusive) to a byte in `0x00..=0xFF` with the same value, failing if the code point is greater than U+00FF.

See `impl From<u8> for char` for details on the encoding.

Source§

#### type Error = TryFromCharError

1.74.0 (const: unstable) · Source§

### impl TryFrom<char> for u16

Maps a `char` with a code point from U+0000 to U+FFFF (inclusive) to a `u16` in `0x0000..=0xFFFF` with the same value, failing if the code point is greater than U+FFFF.

This corresponds to the UCS-2 encoding, as specified in ISO/IEC 10646:2003.

Source§

#### type Error = TryFromCharError

1.94.0 (const: unstable) · Source§

### impl TryFrom<char> for usize

Maps a `char` with a code point from U+0000 to U+10FFFF (inclusive) to a `usize` in `0x0000..=0x10FFFF` with the same value, failing if the final value is unrepresentable by `usize`.

Generally speaking, this conversion can be seen as obtaining the character’s corresponding UTF-32 code point to the extent representable by pointer addresses.

Source§

#### type Error = TryFromCharError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i8> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<i8> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i16> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<i16> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i32> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<i32> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i64> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<i64> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for i64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<i128> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<i128> for NonZero<i128>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for i64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for i128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for u128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<isize> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<isize> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u8> for i8

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<u8> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u16> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u16> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u16> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u16> for u8

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<u16> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for char

Source§

#### type Error = CharTryFromError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u32> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<u32> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for i64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u64> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<u64> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for i64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for i128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<u128> for usize

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<u128> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for i8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for i16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for i32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for i64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for i128

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for isize

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for u8

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for u16

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for u32

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for u64

Source§

#### type Error = TryFromIntError

1.34.0 (const: unstable) · Source§

### impl TryFrom<usize> for u128

Source§

#### type Error = TryFromIntError

1.46.0 (const: unstable) · Source§

### impl TryFrom<usize> for NonZero<usize>

Source§

#### type Error = TryFromIntError

Source§

### impl TryFrom<usize> for Alignment

Source§

#### type Error = TryFromIntError

Source§

### impl TryFrom<ByteString> for String

Source§

#### type Error = FromUtf8Error

1.85.0 · Source§

### impl TryFrom<CString> for String

Source§

#### type Error = IntoStringError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i8>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i16>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i32>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i64>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<i128>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<i128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<isize>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u8>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u16>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u16>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u16>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u16>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u32>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u64>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<i128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<u128>> for NonZero<usize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<i8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<i16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<i32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<i64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<i128>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<isize>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<u8>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<u16>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<u32>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<u64>

Source§

#### type Error = TryFromIntError

1.49.0 (const: unstable) · Source§

### impl TryFrom<NonZero<usize>> for NonZero<u128>

Source§

#### type Error = TryFromIntError

Source§

### impl TryFrom<NonZero<usize>> for Alignment

Source§

#### type Error = TryFromIntError

1.87.0 · Source§

### impl TryFrom<Vec<u8>> for String

Source§

#### type Error = FromUtf8Error

Source§

### impl<'a> TryFrom<&'a ByteStr> for &'a str

Source§

#### type Error = Utf8Error

Source§

### impl<'a> TryFrom<&'a ByteStr> for String

Source§

#### type Error = Utf8Error

Source§

### impl<'a> TryFrom<&'a ByteString> for &'a str

Source§

#### type Error = Utf8Error

1.72.0 · Source§

### impl<'a> TryFrom<&'a OsStr> for &'a str

Source§

#### type Error = Utf8Error

Source§

### impl<'a> TryFrom<&'a mut ByteStr> for &'a mut str

Source§

#### type Error = Utf8Error

1.34.0 (const: unstable) · Source§

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

Tries to create an array ref `&[T; N]` from a slice ref `&[T]`. Succeeds if `slice.len() == N`.

    let bytes: [u8; 3] = [1, 0, 2];

    let bytes_head: &[u8; 2] = <&[u8; 2]>::try_from(&bytes[0..2]).unwrap();
    assert_eq!(1, u16::from_le_bytes(*bytes_head));

    let bytes_tail: &[u8; 2] = bytes[1..3].try_into().unwrap();
    assert_eq!(512, u16::from_le_bytes(*bytes_tail));

Source§

#### type Error = TryFromSliceError

1.34.0 (const: unstable) · Source§

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

Tries to create a mutable array ref `&mut [T; N]` from a mutable slice ref `&mut [T]`. Succeeds if `slice.len() == N`.

    let mut bytes: [u8; 3] = [1, 0, 2];

    let bytes_head: &mut [u8; 2] = <&mut [u8; 2]>::try_from(&mut bytes[0..2]).unwrap();
    assert_eq!(1, u16::from_le_bytes(*bytes_head));

    let bytes_tail: &mut [u8; 2] = (&mut bytes[1..3]).try_into().unwrap();
    assert_eq!(512, u16::from_le_bytes(*bytes_tail));

Source§

#### type Error = TryFromSliceError

1.43.0 · Source§

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

Source§

#### type Error = Rc<[T], A>

1.43.0 · Source§

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

Source§

#### type Error = Arc<[T], A>

1.48.0 · Source§

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

Source§

#### type Error = Vec<T, A>

1.34.0 (const: unstable) · Source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

#### type Error = Infallible

1.34.0 (const: unstable) · Source§

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

Tries to create an array `[T; N]` by copying from a slice `&[T]`. Succeeds if `slice.len() == N`.

    let bytes: [u8; 3] = [1, 0, 2];

    let bytes_head: [u8; 2] = <[u8; 2]>::try_from(&bytes[0..2]).unwrap();
    assert_eq!(1, u16::from_le_bytes(bytes_head));

    let bytes_tail: [u8; 2] = bytes[1..3].try_into().unwrap();
    assert_eq!(512, u16::from_le_bytes(bytes_tail));

Source§

#### type Error = TryFromSliceError

Source§

### impl<T, const N: usize> TryFrom<&[T]> for Simd<T, N>
where LaneCount<N>: SupportedLaneCount, T: SimdElement,

Source§

#### type Error = TryFromSliceError

1.59.0 (const: unstable) · Source§

### impl<T, const N: usize> TryFrom<&mut [T]> for [T; N]
where T: Copy,

Tries to create an array `[T; N]` by copying from a mutable slice `&mut [T]`. Succeeds if `slice.len() == N`.

    let mut bytes: [u8; 3] = [1, 0, 2];

    let bytes_head: [u8; 2] = <[u8; 2]>::try_from(&mut bytes[0..2]).unwrap();
    assert_eq!(1, u16::from_le_bytes(bytes_head));

    let bytes_tail: [u8; 2] = (&mut bytes[1..3]).try_into().unwrap();
    assert_eq!(512, u16::from_le_bytes(bytes_tail));

Source§

#### type Error = TryFromSliceError

Source§

### impl<T, const N: usize> TryFrom<&mut [T]> for Simd<T, N>
where LaneCount<N>: SupportedLaneCount, T: SimdElement,

Source§

#### type Error = TryFromSliceError

1.43.0 · Source§

### impl<T, const N: usize> TryFrom<Box<[T]>> for Box<[T; N]>

Source§

#### type Error = Box<[T]>

1.66.0 · Source§

### impl<T, const N: usize> TryFrom<Vec<T>> for Box<[T; N]>

Source§

#### type Error = Vec<T>