pub trait TryFrom<T>: Sized {
type Error;
// Required method
fn try_from(value: T) -> Result<Self, Self::Error>;
}
miri-test-libstd
only.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
(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> for U
impliesTryInto
<U> for T
try_from
is reflexive, which means thatTryFrom<T> for T
is implemented and cannot fail – the associatedError
type for callingT::try_from()
on a value of typeT
isInfallible
. When the!
type is stabilizedInfallible
and!
will be equivalent.
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§
Required Methods§
Implementors§
§impl TryFrom<&str> for ServerName
impl TryFrom<&str> for ServerName
Attempt to make a ServerName from a string by parsing it as a DNS name.
source§impl TryFrom<&String> for PathAndQuery
impl TryFrom<&String> for PathAndQuery
type Error = InvalidUri
source§impl TryFrom<&BigInt> for i8
Available on has_try_from
only.
impl TryFrom<&BigInt> for i8
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for i16
Available on has_try_from
only.
impl TryFrom<&BigInt> for i16
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for i32
Available on has_try_from
only.
impl TryFrom<&BigInt> for i32
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for i64
Available on has_try_from
only.
impl TryFrom<&BigInt> for i64
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for i128
Available on has_try_from
only.
impl TryFrom<&BigInt> for i128
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for isize
Available on has_try_from
only.
impl TryFrom<&BigInt> for isize
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for u8
Available on has_try_from
only.
impl TryFrom<&BigInt> for u8
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for u16
Available on has_try_from
only.
impl TryFrom<&BigInt> for u16
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for u32
Available on has_try_from
only.
impl TryFrom<&BigInt> for u32
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for u64
Available on has_try_from
only.
impl TryFrom<&BigInt> for u64
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for u128
Available on has_try_from
only.
impl TryFrom<&BigInt> for u128
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for usize
Available on has_try_from
only.
impl TryFrom<&BigInt> for usize
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigInt> for BigUint
Available on has_try_from
only.
impl TryFrom<&BigInt> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for i8
Available on has_try_from
only.
impl TryFrom<&BigUint> for i8
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for i16
Available on has_try_from
only.
impl TryFrom<&BigUint> for i16
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for i32
Available on has_try_from
only.
impl TryFrom<&BigUint> for i32
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for i64
Available on has_try_from
only.
impl TryFrom<&BigUint> for i64
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for i128
Available on has_try_from
only.
impl TryFrom<&BigUint> for i128
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for isize
Available on has_try_from
only.
impl TryFrom<&BigUint> for isize
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for u8
Available on has_try_from
only.
impl TryFrom<&BigUint> for u8
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for u16
Available on has_try_from
only.
impl TryFrom<&BigUint> for u16
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for u32
Available on has_try_from
only.
impl TryFrom<&BigUint> for u32
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for u64
Available on has_try_from
only.
impl TryFrom<&BigUint> for u64
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for u128
Available on has_try_from
only.
impl TryFrom<&BigUint> for u128
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<&BigUint> for usize
Available on has_try_from
only.
impl TryFrom<&BigUint> for usize
has_try_from
only.type Error = TryFromBigIntError<()>
1.59.0 · source§impl TryFrom<char> for u8
impl TryFrom<char> for u8
Map char
with code point in U+0000..=U+00FF to byte in 0x00..=0xFF with same value, failing
if the code point is greater than U+00FF.
See impl From<u8> for char
for details on the encoding.
type Error = TryFromCharError
source§impl TryFrom<i8> for BigUint
Available on has_try_from
only.
impl TryFrom<i8> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
1.46.0 · source§impl TryFrom<i16> for NonZeroI16
impl TryFrom<i16> for NonZeroI16
type Error = TryFromIntError
source§impl TryFrom<i16> for BigUint
Available on has_try_from
only.
impl TryFrom<i16> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
1.46.0 · source§impl TryFrom<i32> for NonZeroI32
impl TryFrom<i32> for NonZeroI32
type Error = TryFromIntError
source§impl TryFrom<i32> for BigUint
Available on has_try_from
only.
impl TryFrom<i32> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
1.46.0 · source§impl TryFrom<i64> for NonZeroI64
impl TryFrom<i64> for NonZeroI64
type Error = TryFromIntError
source§impl TryFrom<i64> for BigUint
Available on has_try_from
only.
impl TryFrom<i64> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
1.46.0 · source§impl TryFrom<i128> for NonZeroI128
impl TryFrom<i128> for NonZeroI128
type Error = TryFromIntError
source§impl TryFrom<i128> for BigUint
Available on has_try_from
only.
impl TryFrom<i128> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
1.46.0 · source§impl TryFrom<isize> for NonZeroIsize
impl TryFrom<isize> for NonZeroIsize
type Error = TryFromIntError
source§impl TryFrom<isize> for BigUint
Available on has_try_from
only.
impl TryFrom<isize> for BigUint
has_try_from
only.type Error = TryFromBigIntError<()>
source§impl TryFrom<u16> for StatusCode
impl TryFrom<u16> for StatusCode
type Error = InvalidStatusCode
1.46.0 · source§impl TryFrom<u16> for NonZeroU16
impl TryFrom<u16> for NonZeroU16
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<u32> for NonZeroU32
impl TryFrom<u32> for NonZeroU32
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<u64> for NonZeroU64
impl TryFrom<u64> for NonZeroU64
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<u128> for NonZeroU128
impl TryFrom<u128> for NonZeroU128
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<usize> for NonZeroUsize
impl TryFrom<usize> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI8> for NonZeroU16
impl TryFrom<NonZeroI8> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI8> for NonZeroU32
impl TryFrom<NonZeroI8> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI8> for NonZeroU64
impl TryFrom<NonZeroI8> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI8> for NonZeroU128
impl TryFrom<NonZeroI8> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI8> for NonZeroUsize
impl TryFrom<NonZeroI8> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroI8
impl TryFrom<NonZeroI16> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroU8
impl TryFrom<NonZeroI16> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroU16
impl TryFrom<NonZeroI16> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroU32
impl TryFrom<NonZeroI16> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroU64
impl TryFrom<NonZeroI16> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroU128
impl TryFrom<NonZeroI16> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI16> for NonZeroUsize
impl TryFrom<NonZeroI16> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroI8
impl TryFrom<NonZeroI32> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroI16
impl TryFrom<NonZeroI32> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroIsize
impl TryFrom<NonZeroI32> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroU8
impl TryFrom<NonZeroI32> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroU16
impl TryFrom<NonZeroI32> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroU32
impl TryFrom<NonZeroI32> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroU64
impl TryFrom<NonZeroI32> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroU128
impl TryFrom<NonZeroI32> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI32> for NonZeroUsize
impl TryFrom<NonZeroI32> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroI8
impl TryFrom<NonZeroI64> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroI16
impl TryFrom<NonZeroI64> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroI32
impl TryFrom<NonZeroI64> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroIsize
impl TryFrom<NonZeroI64> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroU8
impl TryFrom<NonZeroI64> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroU16
impl TryFrom<NonZeroI64> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroU32
impl TryFrom<NonZeroI64> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroU64
impl TryFrom<NonZeroI64> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroU128
impl TryFrom<NonZeroI64> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI64> for NonZeroUsize
impl TryFrom<NonZeroI64> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroI8
impl TryFrom<NonZeroI128> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroI16
impl TryFrom<NonZeroI128> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroI32
impl TryFrom<NonZeroI128> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroI64
impl TryFrom<NonZeroI128> for NonZeroI64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroIsize
impl TryFrom<NonZeroI128> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroU8
impl TryFrom<NonZeroI128> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroU16
impl TryFrom<NonZeroI128> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroU32
impl TryFrom<NonZeroI128> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroU64
impl TryFrom<NonZeroI128> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroU128
impl TryFrom<NonZeroI128> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroI128> for NonZeroUsize
impl TryFrom<NonZeroI128> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroI8
impl TryFrom<NonZeroIsize> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroI16
impl TryFrom<NonZeroIsize> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroI32
impl TryFrom<NonZeroIsize> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroI64
impl TryFrom<NonZeroIsize> for NonZeroI64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroI128
impl TryFrom<NonZeroIsize> for NonZeroI128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroU8
impl TryFrom<NonZeroIsize> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroU16
impl TryFrom<NonZeroIsize> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroU32
impl TryFrom<NonZeroIsize> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroU64
impl TryFrom<NonZeroIsize> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroU128
impl TryFrom<NonZeroIsize> for NonZeroU128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroIsize> for NonZeroUsize
impl TryFrom<NonZeroIsize> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU16> for NonZeroI8
impl TryFrom<NonZeroU16> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU16> for NonZeroI16
impl TryFrom<NonZeroU16> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU16> for NonZeroIsize
impl TryFrom<NonZeroU16> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU16> for NonZeroU8
impl TryFrom<NonZeroU16> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroI8
impl TryFrom<NonZeroU32> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroI16
impl TryFrom<NonZeroU32> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroI32
impl TryFrom<NonZeroU32> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroIsize
impl TryFrom<NonZeroU32> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroU8
impl TryFrom<NonZeroU32> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroU16
impl TryFrom<NonZeroU32> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU32> for NonZeroUsize
impl TryFrom<NonZeroU32> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroI8
impl TryFrom<NonZeroU64> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroI16
impl TryFrom<NonZeroU64> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroI32
impl TryFrom<NonZeroU64> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroI64
impl TryFrom<NonZeroU64> for NonZeroI64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroIsize
impl TryFrom<NonZeroU64> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroU8
impl TryFrom<NonZeroU64> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroU16
impl TryFrom<NonZeroU64> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroU32
impl TryFrom<NonZeroU64> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU64> for NonZeroUsize
impl TryFrom<NonZeroU64> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroI8
impl TryFrom<NonZeroU128> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroI16
impl TryFrom<NonZeroU128> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroI32
impl TryFrom<NonZeroU128> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroI64
impl TryFrom<NonZeroU128> for NonZeroI64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroI128
impl TryFrom<NonZeroU128> for NonZeroI128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroIsize
impl TryFrom<NonZeroU128> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroU8
impl TryFrom<NonZeroU128> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroU16
impl TryFrom<NonZeroU128> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroU32
impl TryFrom<NonZeroU128> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroU64
impl TryFrom<NonZeroU128> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroU128> for NonZeroUsize
impl TryFrom<NonZeroU128> for NonZeroUsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroI8
impl TryFrom<NonZeroUsize> for NonZeroI8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroI16
impl TryFrom<NonZeroUsize> for NonZeroI16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroI32
impl TryFrom<NonZeroUsize> for NonZeroI32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroI64
impl TryFrom<NonZeroUsize> for NonZeroI64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroI128
impl TryFrom<NonZeroUsize> for NonZeroI128
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroIsize
impl TryFrom<NonZeroUsize> for NonZeroIsize
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroU8
impl TryFrom<NonZeroUsize> for NonZeroU8
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroU16
impl TryFrom<NonZeroUsize> for NonZeroU16
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroU32
impl TryFrom<NonZeroUsize> for NonZeroU32
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroU64
impl TryFrom<NonZeroUsize> for NonZeroU64
type Error = TryFromIntError
1.49.0 · source§impl TryFrom<NonZeroUsize> for NonZeroU128
impl TryFrom<NonZeroUsize> for NonZeroU128
type Error = TryFromIntError
source§impl TryFrom<NonZeroUsize> for Alignment
impl TryFrom<NonZeroUsize> for Alignment
type Error = TryFromIntError
source§impl TryFrom<String> for HeaderName
impl TryFrom<String> for HeaderName
type Error = InvalidHeaderName
source§impl TryFrom<String> for HeaderValue
impl TryFrom<String> for HeaderValue
type Error = InvalidHeaderValue
source§impl TryFrom<String> for PathAndQuery
impl TryFrom<String> for PathAndQuery
type Error = InvalidUri
source§impl TryFrom<Vec<u8, Global>> for HeaderName
impl TryFrom<Vec<u8, Global>> for HeaderName
type Error = InvalidHeaderName
source§impl TryFrom<Vec<u8, Global>> for HeaderValue
impl TryFrom<Vec<u8, Global>> for HeaderValue
type Error = InvalidHeaderValue
source§impl TryFrom<SystemTime> for webpki::time::Time
Available on crate feature std
only.
impl TryFrom<SystemTime> for webpki::time::Time
std
only.type Error = Unspecified
source§impl TryFrom<BigInt> for i8
Available on has_try_from
only.
impl TryFrom<BigInt> for i8
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for i16
Available on has_try_from
only.
impl TryFrom<BigInt> for i16
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for i32
Available on has_try_from
only.
impl TryFrom<BigInt> for i32
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for i64
Available on has_try_from
only.
impl TryFrom<BigInt> for i64
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for i128
Available on has_try_from
only.
impl TryFrom<BigInt> for i128
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for isize
Available on has_try_from
only.
impl TryFrom<BigInt> for isize
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for u8
Available on has_try_from
only.
impl TryFrom<BigInt> for u8
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for u16
Available on has_try_from
only.
impl TryFrom<BigInt> for u16
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for u32
Available on has_try_from
only.
impl TryFrom<BigInt> for u32
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for u64
Available on has_try_from
only.
impl TryFrom<BigInt> for u64
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for u128
Available on has_try_from
only.
impl TryFrom<BigInt> for u128
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for usize
Available on has_try_from
only.
impl TryFrom<BigInt> for usize
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigInt> for BigUint
Available on has_try_from
only.
impl TryFrom<BigInt> for BigUint
has_try_from
only.type Error = TryFromBigIntError<BigInt>
source§impl TryFrom<BigUint> for i8
Available on has_try_from
only.
impl TryFrom<BigUint> for i8
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for i16
Available on has_try_from
only.
impl TryFrom<BigUint> for i16
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for i32
Available on has_try_from
only.
impl TryFrom<BigUint> for i32
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for i64
Available on has_try_from
only.
impl TryFrom<BigUint> for i64
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for i128
Available on has_try_from
only.
impl TryFrom<BigUint> for i128
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for isize
Available on has_try_from
only.
impl TryFrom<BigUint> for isize
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for u8
Available on has_try_from
only.
impl TryFrom<BigUint> for u8
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for u16
Available on has_try_from
only.
impl TryFrom<BigUint> for u16
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for u32
Available on has_try_from
only.
impl TryFrom<BigUint> for u32
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for u64
Available on has_try_from
only.
impl TryFrom<BigUint> for u64
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for u128
Available on has_try_from
only.
impl TryFrom<BigUint> for u128
has_try_from
only.type Error = TryFromBigIntError<BigUint>
source§impl TryFrom<BigUint> for usize
Available on has_try_from
only.
impl TryFrom<BigUint> for usize
has_try_from
only.type Error = TryFromBigIntError<BigUint>
§impl TryFrom<PlainMessage> for Message
impl TryFrom<PlainMessage> for Message
Parses a plaintext message into a well-typed [Message
].
A [PlainMessage
] must contain plaintext content. Encrypted content should be stored in an
[OpaqueMessage
] and decrypted before being stored into a [PlainMessage
].
source§impl<'a> TryFrom<&'a str> for HeaderName
impl<'a> TryFrom<&'a str> for HeaderName
type Error = InvalidHeaderName
source§impl<'a> TryFrom<&'a str> for HeaderValue
impl<'a> TryFrom<&'a str> for HeaderValue
type Error = InvalidHeaderValue
source§impl<'a> TryFrom<&'a str> for StatusCode
impl<'a> TryFrom<&'a str> for StatusCode
type Error = InvalidStatusCode
source§impl<'a> TryFrom<&'a str> for PathAndQuery
impl<'a> TryFrom<&'a str> for PathAndQuery
type Error = InvalidUri
source§impl<'a> TryFrom<&'a String> for HeaderName
impl<'a> TryFrom<&'a String> for HeaderName
type Error = InvalidHeaderName
source§impl<'a> TryFrom<&'a String> for HeaderValue
impl<'a> TryFrom<&'a String> for HeaderValue
type Error = InvalidHeaderValue
source§impl<'a> TryFrom<&'a [u8]> for HeaderName
impl<'a> TryFrom<&'a [u8]> for HeaderName
type Error = InvalidHeaderName
source§impl<'a> TryFrom<&'a [u8]> for HeaderValue
impl<'a> TryFrom<&'a [u8]> for HeaderValue
type Error = InvalidHeaderValue
source§impl<'a> TryFrom<&'a [u8]> for StatusCode
impl<'a> TryFrom<&'a [u8]> for StatusCode
type Error = InvalidStatusCode
source§impl<'a> TryFrom<&'a [u8]> for PathAndQuery
impl<'a> TryFrom<&'a [u8]> for PathAndQuery
type Error = InvalidUri
source§impl<'a> TryFrom<Vec<u8, Global>> for PathAndQuery
impl<'a> TryFrom<Vec<u8, Global>> for PathAndQuery
type Error = InvalidUri
§impl<'a, 'b, E, T, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>where
T: TryFrom<Any<'a>, Error = E> + Tagged,
E: From<Error>,
impl<'a, 'b, E, T, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>where T: TryFrom<Any<'a>, Error = E> + Tagged, E: From<Error>,
§impl<'a, 'b, T, E, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>where
T: FromBer<'a, E>,
E: From<Error>,
impl<'a, 'b, T, E, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>where T: FromBer<'a, E>, E: From<Error>,
source§impl<'a, K, V, T> TryFrom<&'a HashMap<K, V, RandomState>> for HeaderMap<T>where
K: Eq + Hash,
HeaderName: TryFrom<&'a K>,
<HeaderName as TryFrom<&'a K>>::Error: Into<Error>,
T: TryFrom<&'a V>,
<T as TryFrom<&'a V>>::Error: Into<Error>,
impl<'a, K, V, T> TryFrom<&'a HashMap<K, V, RandomState>> for HeaderMap<T>where K: Eq + Hash, HeaderName: TryFrom<&'a K>, <HeaderName as TryFrom<&'a K>>::Error: Into<Error>, T: TryFrom<&'a V>, <T as TryFrom<&'a V>>::Error: Into<Error>,
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");
§impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>where
T: FromBer<'a, E>,
E: From<Error>,
impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>where T: FromBer<'a, E>, E: From<Error>,
§impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>where
T: TryFrom<Any<'a>, Error = E> + Tagged,
E: From<Error>,
impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>where T: TryFrom<Any<'a>, Error = E> + Tagged, E: From<Error>,
source§impl<'a, T, const N: usize> TryFrom<&'a [T]> for &'a [T; N]
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));
type Error = TryFromSliceError
source§impl<'a, T, const N: usize> TryFrom<&'a mut [T]> for &'a mut [T; N]
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));
type Error = TryFromSliceError
source§impl<T, const N: usize> TryFrom<&[T]> for [T; N]where
T: Copy,
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));
type Error = TryFromSliceError
1.59.0 · source§impl<T, const N: usize> TryFrom<&mut [T]> for [T; N]where
T: Copy,
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));