Skip to main content

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 (const: unstable) · Source

type Error

The type returned in the event of a conversion error.

Required Methods§

1.34.0 (const: unstable) · 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".

Implementors§

Source§

impl TryFrom<&str> for Kind

Source§

impl TryFrom<&str> for LinkKind

Source§

impl TryFrom<&str> for PresentationLayout

Source§

impl TryFrom<&str> for Alphabet

Source§

impl TryFrom<&str> for otter_nodejs_tests::lazy_regex::BytesRegex

Source§

impl TryFrom<&str> for Id

Source§

impl TryFrom<&str> for ClientId

Source§

impl TryFrom<&str> for FastSplitId

Source§

impl TryFrom<&str> for LogSpecification

Source§

impl TryFrom<&str> for OccId

Source§

impl TryFrom<&str> for PlayerId

Source§

impl TryFrom<&str> for otter_nodejs_tests::Regex

Source§

impl TryFrom<&str> for VisiblePieceId

Source§

impl TryFrom<&str> for ZCoord

Source§

impl TryFrom<&String> for PathAndQuery

Source§

impl TryFrom<&String> for LogSpecification

Source§

impl TryFrom<&Value> for CalendarAlgorithm

Source§

impl TryFrom<&Value> for CollationCaseFirst

Source§

impl TryFrom<&Value> for CollationNumericOrdering

Source§

impl TryFrom<&Value> for CollationType

Source§

impl TryFrom<&Value> for CurrencyFormatStyle

Source§

impl TryFrom<&Value> for EmojiPresentationStyle

Source§

impl TryFrom<&Value> for FirstDay

Source§

impl TryFrom<&Value> for HourCycle

Source§

impl TryFrom<&Value> for LineBreakStyle

Source§

impl TryFrom<&Value> for LineBreakWordHandling

Source§

impl TryFrom<&Value> for MeasurementSystem

Source§

impl TryFrom<&Value> for MeasurementUnitOverride

Source§

impl TryFrom<&Value> for SentenceBreakSupressions

Source§

impl TryFrom<&Value> for CommonVariantType

Source§

impl TryFrom<&Value> for CurrencyType

Source§

impl TryFrom<&Value> for NumberingSystem

Source§

impl TryFrom<&Value> for RegionOverride

Source§

impl TryFrom<&Value> for RegionalSubdivision

Source§

impl TryFrom<&Value> for TimeZoneShortId

Source§

impl TryFrom<&BigInt> for i8

Source§

impl TryFrom<&BigInt> for i16

Source§

impl TryFrom<&BigInt> for i32

Source§

impl TryFrom<&BigInt> for i64

Source§

impl TryFrom<&BigInt> for i128

Source§

impl TryFrom<&BigInt> for isize

Source§

impl TryFrom<&BigInt> for u8

Source§

impl TryFrom<&BigInt> for u16

Source§

impl TryFrom<&BigInt> for u32

Source§

impl TryFrom<&BigInt> for u64

Source§

impl TryFrom<&BigInt> for u128

Source§

impl TryFrom<&BigInt> for usize

Source§

impl TryFrom<&BigInt> for BigUint

Source§

impl TryFrom<&BigUint> for i8

Source§

impl TryFrom<&BigUint> for i16

Source§

impl TryFrom<&BigUint> for i32

Source§

impl TryFrom<&BigUint> for i64

Source§

impl TryFrom<&BigUint> for i128

Source§

impl TryFrom<&BigUint> for isize

Source§

impl TryFrom<&BigUint> for u8

Source§

impl TryFrom<&BigUint> for u16

Source§

impl TryFrom<&BigUint> for u32

Source§

impl TryFrom<&BigUint> for u64

Source§

impl TryFrom<&BigUint> for u128

Source§

impl TryFrom<&BigUint> for usize

Source§

impl TryFrom<&ColourSpec> for Html

Source§

impl TryFrom<&UrlSpec> for Url

Source§

impl TryFrom<&Mutable> for ZCoord

Source§

impl TryFrom<&[u8]> for ReasonPhrase

Source§

type Error = InvalidReasonPhrase

Source§

impl TryFrom<&[u8]> for Output

Source§

impl TryFrom<Error> for Format

Source§

impl TryFrom<Error> for InvalidFormatDescription

Source§

impl TryFrom<Error> for Parse

Source§

impl TryFrom<Error> for ParseFromDescription

Source§

impl TryFrom<Error> for TryFromParsed

Source§

impl TryFrom<Error> for ComponentRange

Source§

impl TryFrom<Error> for ConversionRange

Source§

impl TryFrom<Error> for DifferentVariant

Source§

impl TryFrom<Error> for IndeterminateOffset

Source§

impl TryFrom<Error> for InvalidVariant

Source§

impl TryFrom<Format> for Error

Source§

impl TryFrom<Parse> for ParseFromDescription

Source§

impl TryFrom<Parse> for TryFromParsed

Source§

impl TryFrom<TryFromParsed> for ComponentRange

Source§

impl TryFrom<FormatItem<'_>> for Component

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.

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.

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§

impl TryFrom<f32> for NotNan<f32>

Source§

impl TryFrom<f64> for NotNan<f64>

1.95.0 (const: unstable) · Source§

impl TryFrom<i8> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<i8> for usize

Source§

impl TryFrom<i8> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<i8> for NonZero<i8>

1.95.0 (const: unstable) · Source§

impl TryFrom<i16> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<i16> for usize

Source§

impl TryFrom<i16> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<i16> for NonZero<i16>

Source§

impl TryFrom<i32> for Signal

Source§

impl TryFrom<i32> for SockType

1.95.0 (const: unstable) · Source§

impl TryFrom<i32> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<i32> for usize

Source§

impl TryFrom<i32> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<i32> for NonZero<i32>

1.95.0 (const: unstable) · Source§

impl TryFrom<i64> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<i64> for usize

Source§

impl TryFrom<i64> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<i64> for NonZero<i64>

1.95.0 (const: unstable) · Source§

impl TryFrom<i128> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for i64

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<i128> for usize

Source§

impl TryFrom<i128> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<i128> for NonZero<i128>

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for i64

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for i128

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for u128

1.34.0 (const: unstable) · Source§

impl TryFrom<isize> for usize

Source§

impl TryFrom<isize> for BigUint

1.46.0 (const: unstable) · Source§

impl TryFrom<isize> for NonZero<isize>

Source§

impl TryFrom<u8> for otter_nodejs_tests::chrono::Month

Source§

impl TryFrom<u8> for Weekday

Any weekday can be represented as an integer from 0 to 6, which equals to Weekday::num_days_from_monday in this implementation. Do not heavily depend on this though; use explicit methods whenever possible.

Source§

impl TryFrom<u8> for TrieType

Source§

impl TryFrom<u8> for GeneralCategory

Source§

impl TryFrom<u8> for time::month::Month

1.95.0 (const: unstable) · Source§

impl TryFrom<u8> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<u8> for i8

1.46.0 (const: unstable) · Source§

impl TryFrom<u8> for NonZero<u8>

Source§

impl TryFrom<u8> for CompassAngle

1.95.0 (const: unstable) · Source§

impl TryFrom<u16> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<u16> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<u16> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<u16> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<u16> for u8

Source§

impl TryFrom<u16> for aho_corasick::util::primitives::PatternID

Source§

impl TryFrom<u16> for aho_corasick::util::primitives::StateID

Source§

impl TryFrom<u16> for StatusCode

Source§

impl TryFrom<u16> for regex_automata::util::primitives::PatternID

Source§

impl TryFrom<u16> for SmallIndex

Source§

impl TryFrom<u16> for regex_automata::util::primitives::StateID

1.46.0 (const: unstable) · Source§

impl TryFrom<u16> for NonZero<u16>

Source§

impl TryFrom<u32> for BaudRate

1.95.0 (const: unstable) · Source§

impl TryFrom<u32> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for char

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<u32> for usize

Source§

impl TryFrom<u32> for aho_corasick::util::primitives::PatternID

Source§

impl TryFrom<u32> for aho_corasick::util::primitives::StateID

Source§

impl TryFrom<u32> for PotentialCodePoint

Source§

impl TryFrom<u32> for regex_automata::util::primitives::PatternID

Source§

impl TryFrom<u32> for SmallIndex

Source§

impl TryFrom<u32> for regex_automata::util::primitives::StateID

1.46.0 (const: unstable) · Source§

impl TryFrom<u32> for NonZero<u32>

Source§

impl TryFrom<u32> for Version

1.95.0 (const: unstable) · Source§

impl TryFrom<u64> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for i64

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<u64> for usize

Source§

impl TryFrom<u64> for aho_corasick::util::primitives::PatternID

Source§

impl TryFrom<u64> for aho_corasick::util::primitives::StateID

Source§

impl TryFrom<u64> for regex_automata::util::primitives::PatternID

Source§

impl TryFrom<u64> for SmallIndex

Source§

impl TryFrom<u64> for regex_automata::util::primitives::StateID

1.46.0 (const: unstable) · Source§

impl TryFrom<u64> for NonZero<u64>

1.95.0 (const: unstable) · Source§

impl TryFrom<u128> for bool

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for i64

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for i128

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<u128> for usize

1.46.0 (const: unstable) · Source§

impl TryFrom<u128> for NonZero<u128>

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for i8

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for i16

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for i32

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for i64

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for i128

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for isize

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for u8

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for u16

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for u32

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for u64

1.34.0 (const: unstable) · Source§

impl TryFrom<usize> for u128

Source§

impl TryFrom<usize> for Index

Source§

impl TryFrom<usize> for aho_corasick::util::primitives::PatternID

Source§

impl TryFrom<usize> for aho_corasick::util::primitives::StateID

Source§

impl TryFrom<usize> for regex_automata::util::primitives::PatternID

Source§

impl TryFrom<usize> for SmallIndex

Source§

impl TryFrom<usize> for regex_automata::util::primitives::StateID

1.46.0 (const: unstable) · Source§

impl TryFrom<usize> for NonZero<usize>

Source§

impl TryFrom<usize> for Alignment

Source§

impl TryFrom<ByteString> for String

1.85.0 · Source§

impl TryFrom<CString> for String

Source§

impl TryFrom<String> for HeaderName

Source§

impl TryFrom<String> for HeaderValue

Source§

impl TryFrom<String> for Authority

Source§

impl TryFrom<String> for PathAndQuery

Source§

impl TryFrom<String> for Uri

Source§

impl TryFrom<String> for ReasonPhrase

Source§

type Error = InvalidReasonPhrase

Source§

impl TryFrom<String> for otter_nodejs_tests::lazy_regex::BytesRegex

Source§

impl TryFrom<String> for Id

Source§

impl TryFrom<String> for ClientId

Source§

impl TryFrom<String> for FastSplitId

Source§

impl TryFrom<String> for GoodItemName

Source§

impl TryFrom<String> for OccId

Source§

impl TryFrom<String> for PlayerId

Source§

impl TryFrom<String> for otter_nodejs_tests::Regex

Source§

impl TryFrom<String> for VisiblePieceId

1.87.0 · Source§

impl TryFrom<Vec<u8>> for String

Source§

impl TryFrom<Vec<u8>> for HeaderName

Source§

impl TryFrom<Vec<u8>> for HeaderValue

Source§

impl TryFrom<Vec<u8>> for Authority

Source§

impl TryFrom<Vec<u8>> for ReasonPhrase

Source§

type Error = InvalidReasonPhrase

Source§

impl TryFrom<Vec<u32>> for FakeTimeSpec

Source§

impl TryFrom<TcpListener> for TcpListener

Source§

impl TryFrom<TcpStream> for TcpStream

Source§

impl TryFrom<UdpSocket> for UdpSocket

Source§

impl TryFrom<BString> for String

Source§

impl TryFrom<Bytes> for ReasonPhrase

Source§

type Error = InvalidReasonPhrase

Source§

impl TryFrom<Parts> for Uri

Source§

impl TryFrom<Value> for CurrencyType

Source§

impl TryFrom<Value> for NumberingSystem

Source§

impl TryFrom<Value> for RegionOverride

Source§

impl TryFrom<Value> for RegionalSubdivision

Source§

impl TryFrom<Value> for TimeZoneShortId

Source§

impl TryFrom<BigInt> for i8

Source§

impl TryFrom<BigInt> for i16

Source§

impl TryFrom<BigInt> for i32

Source§

impl TryFrom<BigInt> for i64

Source§

impl TryFrom<BigInt> for i128

Source§

impl TryFrom<BigInt> for isize

Source§

impl TryFrom<BigInt> for u8

Source§

impl TryFrom<BigInt> for u16

Source§

impl TryFrom<BigInt> for u32

Source§

impl TryFrom<BigInt> for u64

Source§

impl TryFrom<BigInt> for u128

Source§

impl TryFrom<BigInt> for usize

Source§

impl TryFrom<BigInt> for BigUint

Source§

impl TryFrom<BigUint> for i8

Source§

impl TryFrom<BigUint> for i16

Source§

impl TryFrom<BigUint> for i32

Source§

impl TryFrom<BigUint> for i64

Source§

impl TryFrom<BigUint> for i128

Source§

impl TryFrom<BigUint> for isize

Source§

impl TryFrom<BigUint> for u8

Source§

impl TryFrom<BigUint> for u16

Source§

impl TryFrom<BigUint> for u32

Source§

impl TryFrom<BigUint> for u64

Source§

impl TryFrom<BigUint> for u128

Source§

impl TryFrom<BigUint> for usize

Source§

impl TryFrom<PotentialCodePoint> for char

Source§

impl TryFrom<Request> for http::request::Request<Body>

Source§

impl TryFrom<Timespec> for otter_nodejs_tests::Duration

Source§

impl TryFrom<Duration> for otter_nodejs_tests::Duration

Source§

impl TryFrom<OffsetDateTime> for DateTime

Available on crate feature time only.
Source§

impl TryFrom<Parsed> for Date

Source§

impl TryFrom<Parsed> for OffsetDateTime

Source§

impl TryFrom<Parsed> for PrimitiveDateTime

Source§

impl TryFrom<Parsed> for Time

Source§

impl TryFrom<Parsed> for UtcOffset

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

1.49.0 (const: unstable) · Source§

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

Source§

impl TryFrom<NonZero<usize>> for Alignment

Source§

impl TryFrom<Error> for Errno

Source§

impl TryFrom<Duration> for Timespec

Source§

impl TryFrom<Duration> for time::duration::Duration

Source§

impl TryFrom<Duration> for FutureInstant

Source§

impl TryFrom<UnixStream> for UnixStream

Source§

impl TryFrom<UnixDatagram> for UnixDatagram

Source§

impl TryFrom<UnixListener> for UnixListener

Source§

impl TryFrom<IOccultIlk_Compat> for IOccultIlk

Source§

impl<'a> TryFrom<&'a str> for HeaderName

Source§

impl<'a> TryFrom<&'a str> for HeaderValue

Source§

impl<'a> TryFrom<&'a str> for Method

Source§

impl<'a> TryFrom<&'a str> for StatusCode

Source§

impl<'a> TryFrom<&'a str> for Authority

Source§

impl<'a> TryFrom<&'a str> for PathAndQuery

Source§

impl<'a> TryFrom<&'a str> for Scheme

Source§

impl<'a> TryFrom<&'a str> for Uri

Source§

impl<'a> TryFrom<&'a str> for Ident<'a>

Source§

impl<'a> TryFrom<&'a str> for Salt<'a>

Source§

impl<'a> TryFrom<&'a str> for PasswordHash<'a>

Source§

impl<'a> TryFrom<&'a str> for Value<'a>

Source§

impl<'a> TryFrom<&'a str> for Url

Source§

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

Source§

impl<'a> TryFrom<&'a String> for HeaderName

Source§

impl<'a> TryFrom<&'a String> for HeaderValue

Source§

impl<'a> TryFrom<&'a String> for Uri

Source§

impl<'a> TryFrom<&'a BStr> for &'a str

Source§

impl<'a> TryFrom<&'a BStr> for String

Available on crate feature alloc only.
Source§

impl<'a> TryFrom<&'a BString> for &'a str

Source§

impl<'a> TryFrom<&'a Uri> for Uri

Source§

impl<'a> TryFrom<&'a PasswordHash<'a>> for Params

Source§

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

Source§

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

1.72.0 · Source§

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

Source§

impl<'a> TryFrom<&'a [u8]> for HeaderName

Source§

impl<'a> TryFrom<&'a [u8]> for HeaderValue

Source§

impl<'a> TryFrom<&'a [u8]> for Method

Source§

impl<'a> TryFrom<&'a [u8]> for StatusCode

Source§

impl<'a> TryFrom<&'a [u8]> for Authority

Source§

impl<'a> TryFrom<&'a [u8]> for PathAndQuery

Source§

impl<'a> TryFrom<&'a [u8]> for Scheme

Source§

impl<'a> TryFrom<&'a [u8]> for Uri

Source§

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

Source§

impl<'a> TryFrom<&Value<'a>> for u32

Source§

impl<'a> TryFrom<FormatItem<'a>> for &[FormatItem<'a>]

Source§

impl<'a> TryFrom<Vec<u8>> for PathAndQuery

Source§

impl<'a> TryFrom<Vec<u8>> for Uri

Source§

impl<'a> TryFrom<Ident<'a>> for Algorithm

Source§

impl<'a> TryFrom<Value<'a>> for u32

Source§

impl<'a> TryFrom<Params> for ParamsString

Source§

impl<'a, K, V, T> TryFrom<&'a HashMap<K, V>> for HeaderMap<T>

Try to convert a HashMap into a HeaderMap.

§Examples

use std::collections::HashMap;
use std::convert::TryInto;
use http::HeaderMap;

let mut map = HashMap::new();
map.insert("X-Custom-Header".to_string(), "my value".to_string());

let headers: HeaderMap = (&map).try_into().expect("valid headers");
assert_eq!(headers["X-Custom-Header"], "my value");
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));
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§

impl<'a, const CAP: usize> TryFrom<&'a str> for ArrayString<CAP>

Source§

impl<'a, const CAP: usize> TryFrom<Arguments<'a>> for ArrayString<CAP>

Source§

impl<'trie, T> TryFrom<&'trie CodePointTrie<'trie, T>> for &'trie FastCodePointTrie<'trie, T>
where T: TrieValue,

Source§

type Error = TypedCodePointTrieError

Source§

impl<'trie, T> TryFrom<&'trie CodePointTrie<'trie, T>> for &'trie SmallCodePointTrie<'trie, T>
where T: TrieValue,

Source§

type Error = TypedCodePointTrieError

Source§

impl<'trie, T> TryFrom<CodePointTrie<'trie, T>> for FastCodePointTrie<'trie, T>
where T: TrieValue,

Source§

type Error = TypedCodePointTrieError

Source§

impl<'trie, T> TryFrom<CodePointTrie<'trie, T>> for SmallCodePointTrie<'trie, T>
where T: TrieValue,

Source§

type Error = TypedCodePointTrieError

Source§

impl<O> TryFrom<i32> for I16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<i64> for I16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<i64> for I32<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<i128> for I16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<i128> for I32<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<i128> for I64<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<isize> for I16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u32> for U16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u64> for U16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u64> for U32<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u128> for U16<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u128> for U32<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<u128> for U64<O>
where O: ByteOrder,

Source§

impl<O> TryFrom<usize> for U16<O>
where O: ByteOrder,

Source§

impl<O, P> TryFrom<I32<P>> for I16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<I64<P>> for I16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<I64<P>> for I32<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<I128<P>> for I16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<I128<P>> for I32<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<I128<P>> for I64<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<Isize<P>> for I16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U32<P>> for U16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U64<P>> for U16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U64<P>> for U32<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U128<P>> for U16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U128<P>> for U32<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<U128<P>> for U64<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<O, P> TryFrom<Usize<P>> for U16<O>
where O: ByteOrder, P: ByteOrder,

Source§

impl<P> TryFrom<Vec<AclEntry<P>>> for Acl<P>
where P: Eq + Hash,

Source§

impl<T> TryFrom<Request<T>> for reqwest::async_impl::request::Request
where T: Into<Body>,

Source§

impl<T> TryFrom<Request<T>> for reqwest::blocking::request::Request
where T: Into<Body>,

Source§

impl<T> TryFrom<Dh<T>> for PKey<T>

Available on non-boringssl only.
Source§

impl<T> TryFrom<Dsa<T>> for PKey<T>

Source§

impl<T> TryFrom<EcKey<T>> for PKey<T>

Source§

impl<T> TryFrom<PKey<T>> for Dh<T>

Source§

impl<T> TryFrom<PKey<T>> for Dsa<T>

Source§

impl<T> TryFrom<PKey<T>> for EcKey<T>

Source§

impl<T> TryFrom<PKey<T>> for Rsa<T>

Source§

impl<T> TryFrom<Rsa<T>> for PKey<T>

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.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.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.34.0 (const: unstable) · Source§

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

Source§

impl<T, const CAP: usize> TryFrom<&[T]> for ArrayVec<T, CAP>
where T: Clone,

Try to create an ArrayVec from a slice. This will return an error if the slice was too big to fit.

use arrayvec::ArrayVec;
use std::convert::TryInto as _;

let array: ArrayVec<_, 4> = (&[1, 2, 3] as &[_]).try_into().unwrap();
assert_eq!(array.len(), 3);
assert_eq!(array.capacity(), 4);
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§

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

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§

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

1.43.0 · Source§

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

1.66.0 · Source§

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

Available on non-no_global_oom_handling only.
Source§

type Error = Vec<T>

Source§

impl<const N: usize> TryFrom<TinyAsciiStr<N>> for Subtag