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
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§
Object Safety§
Implementors§
source§impl TryFrom<&[u8]> for Ec256PrivateKey
impl TryFrom<&[u8]> for Ec256PrivateKey
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Ec256PublicKey
impl TryFrom<&[u8]> for Ec256PublicKey
type Error = TryFromSliceError
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Ec256Signature
impl TryFrom<&[u8]> for Ec256Signature
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa2048Key
impl TryFrom<&[u8]> for Rsa2048Key
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa2048Param
impl TryFrom<&[u8]> for Rsa2048Param
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa2048PrivKey
impl TryFrom<&[u8]> for Rsa2048PrivKey
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa2048PubKey
impl TryFrom<&[u8]> for Rsa2048PubKey
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa2048Signature
impl TryFrom<&[u8]> for Rsa2048Signature
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa3072Key
impl TryFrom<&[u8]> for Rsa3072Key
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa3072Param
impl TryFrom<&[u8]> for Rsa3072Param
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa3072PrivKey
impl TryFrom<&[u8]> for Rsa3072PrivKey
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa3072PubKey
impl TryFrom<&[u8]> for Rsa3072PubKey
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Rsa3072Signature
impl TryFrom<&[u8]> for Rsa3072Signature
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Sha256Hash
impl TryFrom<&[u8]> for Sha256Hash
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Sha384Hash
impl TryFrom<&[u8]> for Sha384Hash
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for QuoteNonce
impl TryFrom<&[u8]> for QuoteNonce
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for TeeAttributes
impl TryFrom<&[u8]> for TeeAttributes
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for TeeMeasurement
impl TryFrom<&[u8]> for TeeMeasurement
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for TeeReportData
impl TryFrom<&[u8]> for TeeReportData
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for Measurement
impl TryFrom<&[u8]> for Measurement
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for ReportData
impl TryFrom<&[u8]> for ReportData
type Error = TryFromSliceError
source§impl TryFrom<&[u8]> for SwitchlessWokerStats
impl TryFrom<&[u8]> for SwitchlessWokerStats
type Error = TryFromSliceError
1.59.0 · source§impl TryFrom<char> for u8
impl TryFrom<char> for u8
Maps a char
with code point in U+0000..=U+00FF to a 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
1.74.0 · source§impl TryFrom<char> for u16
impl TryFrom<char> for u16
Maps a char
with code point in U+0000..=U+FFFF to a u16
in 0x0000..=0xFFFF with 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.
type Error = TryFromCharError
1.46.0 · source§impl TryFrom<i16> for NonZeroI16
impl TryFrom<i16> for NonZeroI16
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<i32> for NonZeroI32
impl TryFrom<i32> for NonZeroI32
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<i64> for NonZeroI64
impl TryFrom<i64> for NonZeroI64
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<i128> for NonZeroI128
impl TryFrom<i128> for NonZeroI128
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<isize> for NonZeroIsize
impl TryFrom<isize> for NonZeroIsize
type Error = TryFromIntError
source§impl TryFrom<u8> for ProtectPerm
impl TryFrom<u8> for ProtectPerm
type Error = TryFromIntError
1.46.0 · source§impl TryFrom<u16> for NonZeroU16
impl TryFrom<u16> for NonZeroU16
type Error = TryFromIntError
source§impl TryFrom<u32> for FutexClockId
impl TryFrom<u32> for FutexClockId
type Error = TryFromIntError
source§impl TryFrom<u32> for ExceptionType
impl TryFrom<u32> for ExceptionType
type Error = TryFromIntError
source§impl TryFrom<u32> for ExceptionVector
impl TryFrom<u32> for ExceptionVector
type Error = TryFromIntError
source§impl TryFrom<u32> for HandleResult
impl TryFrom<u32> for HandleResult
type Error = TryFromIntError
source§impl TryFrom<u32> for Quote3Error
impl TryFrom<u32> for Quote3Error
type Error = TryFromIntError
source§impl TryFrom<u32> for RsaKeyType
impl TryFrom<u32> for RsaKeyType
type Error = TryFromIntError
source§impl TryFrom<u32> for PckCertFlag
impl TryFrom<u32> for PckCertFlag
type Error = TryFromIntError
source§impl TryFrom<u32> for QlAttestationAlgorithmId
impl TryFrom<u32> for QlAttestationAlgorithmId
type Error = TryFromIntError
source§impl TryFrom<u32> for QlCertKeyType
impl TryFrom<u32> for QlCertKeyType
type Error = TryFromIntError
source§impl TryFrom<u32> for QlConfigVersion
impl TryFrom<u32> for QlConfigVersion
type Error = TryFromIntError
source§impl TryFrom<u32> for QlLogLevel
impl TryFrom<u32> for QlLogLevel
type Error = TryFromIntError
source§impl TryFrom<u32> for QlPathType
impl TryFrom<u32> for QlPathType
type Error = TryFromIntError
source§impl TryFrom<u32> for QlQvResult
impl TryFrom<u32> for QlQvResult
type Error = TryFromIntError
source§impl TryFrom<u32> for QlRequestPolicy
impl TryFrom<u32> for QlRequestPolicy
type Error = TryFromIntError
source§impl TryFrom<u32> for QvPathType
impl TryFrom<u32> for QvPathType
type Error = TryFromIntError
source§impl TryFrom<u32> for DhSessionRole
impl TryFrom<u32> for DhSessionRole
type Error = TryFromIntError
source§impl TryFrom<u32> for EnclaveMode
impl TryFrom<u32> for EnclaveMode
type Error = TryFromIntError
source§impl TryFrom<u32> for QuoteSignType
impl TryFrom<u32> for QuoteSignType
type Error = TryFromIntError
source§impl TryFrom<u32> for SwitchlessWokerEvent
impl TryFrom<u32> for SwitchlessWokerEvent
type Error = TryFromIntError
source§impl TryFrom<u32> for SwitchlessWokerType
impl TryFrom<u32> for SwitchlessWokerType
type Error = TryFromIntError
source§impl TryFrom<u32> for SgxDeviceStatus
impl TryFrom<u32> for SgxDeviceStatus
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<'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
1.43.0 · source§impl<T, A, const N: usize> TryFrom<Arc<[T], A>> for Arc<[T; N], A>where
A: Allocator + Clone,
impl<T, A, const N: usize> TryFrom<Arc<[T], A>> for Arc<[T; N], A>where A: Allocator + Clone,
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
source§impl<T, const N: usize> TryFrom<&[T]> for Simd<T, N>where
LaneCount<N>: SupportedLaneCount,
T: SimdElement,
impl<T, const N: usize> TryFrom<&[T]> for Simd<T, N>where LaneCount<N>: SupportedLaneCount, T: SimdElement,
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));