Trait TryFrom

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

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

core Simple and safe type conversions that may fail in a controlled way.

Re-exported from core::convert:: .


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.

TryFrom<T> can be implemented as follows:

struct GreaterThanZero(i32);

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

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

§Examples

As described, i32 implements TryFrom<i64>:

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

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

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

Required Associated Types§

1.34.0 · Source

type Error

The type returned in the event of a conversion error.

Required Methods§

1.34.0 · Source

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

Performs the conversion.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl TryFrom<&str> for Color

§

type Error = ()

§

impl TryFrom<&str> for Regex

§

type Error = Error

Source§

impl TryFrom<&str> for Uuid

§

impl TryFrom<&str> for Alphabet

§

type Error = ParseAlphabetError

§

impl TryFrom<&DecapsulationKey> for devela::_dep::orion::hazardous::kem::mlkem512::EncapsulationKey

§

impl TryFrom<&DecapsulationKey> for devela::_dep::orion::hazardous::kem::mlkem768::EncapsulationKey

§

impl TryFrom<&DecapsulationKey> for devela::_dep::orion::hazardous::kem::mlkem1024::EncapsulationKey

§

impl TryFrom<&Seed> for devela::_dep::orion::hazardous::kem::mlkem512::KeyPair

§

impl TryFrom<&Seed> for devela::_dep::orion::hazardous::kem::mlkem768::KeyPair

§

impl TryFrom<&Seed> for devela::_dep::orion::hazardous::kem::mlkem1024::KeyPair

§

impl TryFrom<&Seed> for devela::_dep::orion::hazardous::kem::xwing::KeyPair

§

impl TryFrom<&PrivateKey> for PublicKey

Source§

impl TryFrom<&JsValue> for f64

§

impl TryFrom<&String> for PathAndQuery

§

impl TryFrom<&[u8]> for devela::_dep::orion::aead::streaming::Nonce

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::auth::Tag

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hash::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::aead::chacha20poly1305::Nonce

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha2::sha256::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha2::sha384::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha2::sha512::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha3::sha3_224::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha3::sha3_256::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha3::sha3_384::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::hash::sha3::sha3_512::Digest

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::kem::mlkem512::Ciphertext

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::kem::mlkem768::Ciphertext

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::kem::mlkem1024::Ciphertext

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::kem::xwing::Ciphertext

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::kem::xwing::EncapsulationKey

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::mac::hmac::sha256::Tag

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::mac::hmac::sha384::Tag

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::mac::hmac::sha512::Tag

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for devela::_dep::orion::hazardous::mac::poly1305::Tag

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for Salt

Delegates to from_slice implementation

§

impl TryFrom<&[u8]> for PublicKey

Delegates to from_slice implementation

§

impl TryFrom<PixelFormatEnum> for devela::_dep::sdl2::pixels::PixelFormat

Source§

impl TryFrom<Sign> for bool

Source§

impl TryFrom<Sign> for u8

Source§

impl TryFrom<Sign> for u16

Source§

impl TryFrom<Sign> for u32

Source§

impl TryFrom<Sign> for u64

Source§

impl TryFrom<Sign> for u128

Source§

impl TryFrom<Sign> for usize

Source§

impl TryFrom<UnitBi> for i16

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitBi> for i32

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitBi> for u16

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitBi> for u32

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitBi> for u64

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitBi> for u128

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for i16

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for i32

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for u16

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for u32

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for u64

Available on crate features unit and cast only.
Source§

impl TryFrom<UnitSi> for u128

Available on crate features unit and cast only.
Source§

impl TryFrom<InvalidText> for InvalidChar

Source§

impl TryFrom<InvalidText> for InvalidUtf8

Source§

impl TryFrom<InvalidText> for MismatchedCapacity

Source§

impl TryFrom<TextError> for InvalidText

Available on crate feature error and text·· only.
Source§

impl TryFrom<TextError> for InvalidChar

Available on crate feature error and text·· only.
Source§

impl TryFrom<TextError> for InvalidUtf8

Available on crate feature error and text·· only.
Source§

impl TryFrom<TextError> for ElementNotFound

Available on crate feature error and text·· only.
Source§

impl TryFrom<TextError> for MismatchedCapacity

Available on crate feature error and text·· only.
Source§

impl TryFrom<DataError> for DataNotEnough

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for MismatchedBounds

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NotAvailable

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for PartialSpace

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for DataOverflow

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for ElementNotFound

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for IndexOutOfBounds

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for InvalidAxisLength

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for KeyAlreadyExists

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for MismatchedCapacity

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for MismatchedDimensions

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for MismatchedIndices

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NodeEmpty

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NodeLinkNotSet

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NodeLinkNotUnique

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NotEnoughElements

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NotEnoughSpace

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NotImplemented

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for NotSupported

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataError> for PartiallyAdded

Available on crate feature error and data·· only.
Source§

impl TryFrom<DataNotEnough> for NotEnoughElements

Source§

impl TryFrom<DataNotEnough> for NotEnoughSpace

Source§

impl TryFrom<MismatchedBounds> for DataOverflow

Source§

impl TryFrom<MismatchedBounds> for IndexOutOfBounds

Source§

impl TryFrom<MismatchedBounds> for MismatchedCapacity

Source§

impl TryFrom<MismatchedBounds> for MismatchedIndices

Source§

impl TryFrom<NotAvailable> for NotImplemented

Source§

impl TryFrom<NotAvailable> for NotSupported

Source§

impl TryFrom<PartialSpace> for NotEnoughSpace

Source§

impl TryFrom<PartialSpace> for PartiallyAdded

Source§

impl TryFrom<TimeError> for DataOverflow

Available on crate features error and time only.
Source§

impl TryFrom<TimeError> for SystemTimeError

Available on crate features error and time only.
1.59.0 · Source§

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.

1.74.0 · Source§

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.

Source§

impl TryFrom<char> for char7

Source§

impl TryFrom<char> for char8

Source§

impl TryFrom<char> for char16

1.34.0 · Source§

impl TryFrom<i8> for u8

1.34.0 · Source§

impl TryFrom<i8> for u16

1.34.0 · Source§

impl TryFrom<i8> for u32

1.34.0 · Source§

impl TryFrom<i8> for u64

1.34.0 · Source§

impl TryFrom<i8> for u128

1.34.0 · Source§

impl TryFrom<i8> for usize

1.46.0 · Source§

impl TryFrom<i8> for NonZero<i8>

Source§

impl TryFrom<i8> for UnixTimeU32

§

impl TryFrom<i8> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<i16> for i8

1.34.0 · Source§

impl TryFrom<i16> for u8

1.34.0 · Source§

impl TryFrom<i16> for u16

1.34.0 · Source§

impl TryFrom<i16> for u32

1.34.0 · Source§

impl TryFrom<i16> for u64

1.34.0 · Source§

impl TryFrom<i16> for u128

1.34.0 · Source§

impl TryFrom<i16> for usize

1.46.0 · Source§

impl TryFrom<i16> for NonZero<i16>

Source§

impl TryFrom<i16> for UnixTimeU32

§

impl TryFrom<i16> for PollTimeout

§

type Error = PollTimeoutTryFromError

§

impl TryFrom<i32> for DumpableBehavior

§

type Error = Errno

§

impl TryFrom<i32> for TimingMethod

§

type Error = Errno

§

impl TryFrom<i32> for SecureComputingMode

§

type Error = Errno

1.34.0 · Source§

impl TryFrom<i32> for i8

1.34.0 · Source§

impl TryFrom<i32> for i16

1.34.0 · Source§

impl TryFrom<i32> for isize

1.34.0 · Source§

impl TryFrom<i32> for u8

1.34.0 · Source§

impl TryFrom<i32> for u16

1.34.0 · Source§

impl TryFrom<i32> for u32

1.34.0 · Source§

impl TryFrom<i32> for u64

1.34.0 · Source§

impl TryFrom<i32> for u128

1.34.0 · Source§

impl TryFrom<i32> for usize

1.46.0 · Source§

impl TryFrom<i32> for NonZero<i32>

Source§

impl TryFrom<i32> for UnixTimeU32

§

impl TryFrom<i32> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<i64> for i8

1.34.0 · Source§

impl TryFrom<i64> for i16

1.34.0 · Source§

impl TryFrom<i64> for i32

1.34.0 · Source§

impl TryFrom<i64> for isize

1.34.0 · Source§

impl TryFrom<i64> for u8

1.34.0 · Source§

impl TryFrom<i64> for u16

1.34.0 · Source§

impl TryFrom<i64> for u32

1.34.0 · Source§

impl TryFrom<i64> for u64

1.34.0 · Source§

impl TryFrom<i64> for u128

1.34.0 · Source§

impl TryFrom<i64> for usize

Source§

impl TryFrom<i64> for Number

1.46.0 · Source§

impl TryFrom<i64> for NonZero<i64>

Source§

impl TryFrom<i64> for UnixTimeU32

§

impl TryFrom<i64> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<i128> for i8

1.34.0 · Source§

impl TryFrom<i128> for i16

1.34.0 · Source§

impl TryFrom<i128> for i32

1.34.0 · Source§

impl TryFrom<i128> for i64

1.34.0 · Source§

impl TryFrom<i128> for isize

1.34.0 · Source§

impl TryFrom<i128> for u8

1.34.0 · Source§

impl TryFrom<i128> for u16

1.34.0 · Source§

impl TryFrom<i128> for u32

1.34.0 · Source§

impl TryFrom<i128> for u64

1.34.0 · Source§

impl TryFrom<i128> for u128

1.34.0 · Source§

impl TryFrom<i128> for usize

Source§

impl TryFrom<i128> for Number

1.46.0 · Source§

impl TryFrom<i128> for NonZero<i128>

Source§

impl TryFrom<i128> for UnixTimeI64

Source§

impl TryFrom<i128> for UnixTimeU32

§

impl TryFrom<i128> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<isize> for i8

1.34.0 · Source§

impl TryFrom<isize> for i16

1.34.0 · Source§

impl TryFrom<isize> for i32

1.34.0 · Source§

impl TryFrom<isize> for i64

1.34.0 · Source§

impl TryFrom<isize> for i128

1.34.0 · Source§

impl TryFrom<isize> for u8

1.34.0 · Source§

impl TryFrom<isize> for u16

1.34.0 · Source§

impl TryFrom<isize> for u32

1.34.0 · Source§

impl TryFrom<isize> for u64

1.34.0 · Source§

impl TryFrom<isize> for u128

1.34.0 · Source§

impl TryFrom<isize> for usize

1.46.0 · Source§

impl TryFrom<isize> for NonZero<isize>

Source§

impl TryFrom<isize> for UnixTimeI64

Source§

impl TryFrom<isize> for UnixTimeU32

§

impl TryFrom<u8> for StreamTag

§

impl TryFrom<u8> for SysCallUserDispatchFastSwitch

§

type Error = Errno

1.34.0 · Source§

impl TryFrom<u8> for i8

1.46.0 · Source§

impl TryFrom<u8> for NonZero<u8>

1.34.0 · Source§

impl TryFrom<u16> for i8

1.34.0 · Source§

impl TryFrom<u16> for i16

1.34.0 · Source§

impl TryFrom<u16> for isize

1.34.0 · Source§

impl TryFrom<u16> for u8

§

impl TryFrom<u16> for StatusCode

1.46.0 · Source§

impl TryFrom<u16> for NonZero<u16>

§

impl TryFrom<u32> for EndianMode

§

type Error = Errno

§

impl TryFrom<u32> for FloatingPointMode

§

type Error = Errno

§

impl TryFrom<u32> for MachineCheckMemoryCorruptionKillPolicy

§

type Error = Errno

§

impl TryFrom<u32> for SpeculationFeature

§

type Error = Errno

§

impl TryFrom<u32> for TimeStampCounterReadability

§

type Error = Errno

§

impl TryFrom<u32> for CoreSchedulingScope

§

type Error = Errno

§

impl TryFrom<u32> for AudioStatus

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl2::event::EventType

§

type Error = ()

§

impl TryFrom<u32> for PixelFormatEnum

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl2::render::BlendMode

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl2::render::TextureAccess

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl3::event::EventType

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl3::render::BlendMode

§

type Error = ()

§

impl TryFrom<u32> for devela::_dep::sdl3::render::TextureAccess

1.34.0 · Source§

impl TryFrom<u32> for char

1.34.0 · Source§

impl TryFrom<u32> for i8

1.34.0 · Source§

impl TryFrom<u32> for i16

1.34.0 · Source§

impl TryFrom<u32> for i32

1.34.0 · Source§

impl TryFrom<u32> for isize

1.34.0 · Source§

impl TryFrom<u32> for u8

1.34.0 · Source§

impl TryFrom<u32> for u16

1.34.0 · Source§

impl TryFrom<u32> for usize

1.46.0 · Source§

impl TryFrom<u32> for NonZero<u32>

§

impl TryFrom<u32> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<u64> for i8

1.34.0 · Source§

impl TryFrom<u64> for i16

1.34.0 · Source§

impl TryFrom<u64> for i32

1.34.0 · Source§

impl TryFrom<u64> for i64

1.34.0 · Source§

impl TryFrom<u64> for isize

1.34.0 · Source§

impl TryFrom<u64> for u8

1.34.0 · Source§

impl TryFrom<u64> for u16

1.34.0 · Source§

impl TryFrom<u64> for u32

1.34.0 · Source§

impl TryFrom<u64> for usize

Source§

impl TryFrom<u64> for Number

1.46.0 · Source§

impl TryFrom<u64> for NonZero<u64>

Source§

impl TryFrom<u64> for UnixTimeI64

Source§

impl TryFrom<u64> for UnixTimeU32

§

impl TryFrom<u64> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<u128> for i8

1.34.0 · Source§

impl TryFrom<u128> for i16

1.34.0 · Source§

impl TryFrom<u128> for i32

1.34.0 · Source§

impl TryFrom<u128> for i64

1.34.0 · Source§

impl TryFrom<u128> for i128

1.34.0 · Source§

impl TryFrom<u128> for isize

1.34.0 · Source§

impl TryFrom<u128> for u8

1.34.0 · Source§

impl TryFrom<u128> for u16

1.34.0 · Source§

impl TryFrom<u128> for u32

1.34.0 · Source§

impl TryFrom<u128> for u64

1.34.0 · Source§

impl TryFrom<u128> for usize

Source§

impl TryFrom<u128> for Number

1.46.0 · Source§

impl TryFrom<u128> for NonZero<u128>

Source§

impl TryFrom<u128> for UnixTimeI64

Source§

impl TryFrom<u128> for UnixTimeU32

§

impl TryFrom<u128> for PollTimeout

§

type Error = PollTimeoutTryFromError

1.34.0 · Source§

impl TryFrom<usize> for i8

1.34.0 · Source§

impl TryFrom<usize> for i16

1.34.0 · Source§

impl TryFrom<usize> for i32

1.34.0 · Source§

impl TryFrom<usize> for i64

1.34.0 · Source§

impl TryFrom<usize> for i128

1.34.0 · Source§

impl TryFrom<usize> for isize

1.34.0 · Source§

impl TryFrom<usize> for u8

1.34.0 · Source§

impl TryFrom<usize> for u16

1.34.0 · Source§

impl TryFrom<usize> for u32

1.34.0 · Source§

impl TryFrom<usize> for u64

1.34.0 · Source§

impl TryFrom<usize> for u128

Source§

impl TryFrom<usize> for Alignment

§

impl TryFrom<usize> for Gid

§

type Error = <u32 as TryFrom<usize>>::Error

§

impl TryFrom<usize> for Uid

§

type Error = <u32 as TryFrom<usize>>::Error

Source§

impl TryFrom<usize> for CodecBe<i8>

Source§

impl TryFrom<usize> for CodecBe<i16>

Source§

impl TryFrom<usize> for CodecBe<i32>

Source§

impl TryFrom<usize> for CodecBe<i64>

Source§

impl TryFrom<usize> for CodecBe<i128>

Source§

impl TryFrom<usize> for CodecBe<isize>

Source§

impl TryFrom<usize> for CodecBe<u8>

Source§

impl TryFrom<usize> for CodecBe<u16>

Source§

impl TryFrom<usize> for CodecBe<u32>

Source§

impl TryFrom<usize> for CodecBe<u64>

Source§

impl TryFrom<usize> for CodecBe<u128>

Source§

impl TryFrom<usize> for CodecLe<i8>

Source§

impl TryFrom<usize> for CodecLe<i16>

Source§

impl TryFrom<usize> for CodecLe<i32>

Source§

impl TryFrom<usize> for CodecLe<i64>

Source§

impl TryFrom<usize> for CodecLe<i128>

Source§

impl TryFrom<usize> for CodecLe<isize>

Source§

impl TryFrom<usize> for CodecLe<u8>

Source§

impl TryFrom<usize> for CodecLe<u16>

Source§

impl TryFrom<usize> for CodecLe<u32>

Source§

impl TryFrom<usize> for CodecLe<u64>

Source§

impl TryFrom<usize> for CodecLe<u128>

1.46.0 · Source§

impl TryFrom<usize> for NonZero<usize>

Source§

impl TryFrom<usize> for UnixTimeI64

Source§

impl TryFrom<usize> for UnixTimeU32

Source§

impl TryFrom<ByteString> for String

§

impl TryFrom<SignedDuration> for Span

Converts a SignedDuration to a Span.

The span returned from this conversion will only ever have non-zero units of seconds or smaller.

§Errors

This only fails when the given SignedDuration overflows the maximum number of seconds representable by a Span.

§Example

This shows a basic conversion:

use jiff::{SignedDuration, Span, ToSpan};

let duration = SignedDuration::new(86_400, 123_456_789);
let span = Span::try_from(duration)?;
// A duration-to-span conversion always results in a span with
// non-zero units no bigger than seconds.
assert_eq!(
    span.fieldwise(),
    86_400.seconds().milliseconds(123).microseconds(456).nanoseconds(789),
);

§Example: rounding

This example shows how to convert a SignedDuration to a Span, and then round it up to bigger units given a relative date:

use jiff::{civil::date, SignedDuration, Span, SpanRound, ToSpan, Unit};

let duration = SignedDuration::new(450 * 86_401, 0);
let span = Span::try_from(duration)?;
// We get back a simple span of just seconds:
assert_eq!(span.fieldwise(), Span::new().seconds(450 * 86_401));
// But we can balance it up to bigger units:
let options = SpanRound::new()
    .largest(Unit::Year)
    .relative(date(2024, 1, 1));
assert_eq!(
    span.round(options)?,
    1.year().months(2).days(25).minutes(7).seconds(30).fieldwise(),
);
§

type Error = Error

§

impl TryFrom<SignedDuration> for Offset

Converts a SignedDuration to a time zone offset.

If the signed duration has fractional seconds, then it is automatically rounded to the nearest second. (Because an Offset has only second precision.)

§Errors

This returns an error if the duration overflows the limits of an Offset.

§Example

use jiff::{tz::{self, Offset}, SignedDuration};

let sdur = SignedDuration::from_secs(-5 * 60 * 60);
let offset = Offset::try_from(sdur)?;
assert_eq!(offset, tz::offset(-5));

// Sub-seconds results in rounded.
let sdur = SignedDuration::new(-5 * 60 * 60, -500_000_000);
let offset = Offset::try_from(sdur)?;
assert_eq!(offset, tz::Offset::from_seconds(-(5 * 60 * 60 + 1)).unwrap());
§

type Error = Error

§

impl TryFrom<SignedDuration> for Duration

§

type Error = Error

§

impl TryFrom<Span> for SignedDuration

Converts a Span to a SignedDuration.

Note that this assumes that days are always 24 hours long.

§Errors

This can fail for only when the span has any non-zero units greater than hours. This is an error because it’s impossible to determine the length of, e.g., a month without a reference date.

This can never result in overflow because a SignedDuration can represent a bigger span of time than Span when limited to units of hours or lower.

If you need to convert a Span to a SignedDuration that has non-zero units bigger than hours, then please use Span::to_duration with a corresponding relative date.

§Example: maximal span

This example shows the maximum possible span using units of hours or smaller, and the corresponding SignedDuration value:

use jiff::{SignedDuration, Span};

let sp = Span::new()
    .hours(175_307_616)
    .minutes(10_518_456_960i64)
    .seconds(631_107_417_600i64)
    .milliseconds(631_107_417_600_000i64)
    .microseconds(631_107_417_600_000_000i64)
    .nanoseconds(9_223_372_036_854_775_807i64);
let duration = SignedDuration::try_from(sp)?;
assert_eq!(duration, SignedDuration::new(3_164_760_460_036, 854_775_807));
§

type Error = Error

§

impl TryFrom<Span> for Duration

Converts a Span to a std::time::Duration.

Note that this assumes that days are always 24 hours long.

§Errors

This can fail for only two reasons:

  • The span is negative. This is an error because a std::time::Duration is unsigned.)
  • The span has any non-zero units greater than hours. This is an error because it’s impossible to determine the length of, e.g., a month without a reference date.

This can never result in overflow because a Duration can represent a bigger span of time than Span when limited to units of hours or lower.

If you need to convert a Span to a Duration that has non-zero units bigger than hours, then please use Span::to_duration with a corresponding relative date.

§Example: maximal span

This example shows the maximum possible span using units of hours or smaller, and the corresponding Duration value:

use std::time::Duration;

use jiff::Span;

let sp = Span::new()
    .hours(175_307_616)
    .minutes(10_518_456_960i64)
    .seconds(631_107_417_600i64)
    .milliseconds(631_107_417_600_000i64)
    .microseconds(631_107_417_600_000_000i64)
    .nanoseconds(9_223_372_036_854_775_807i64);
let duration = Duration::try_from(sp)?;
assert_eq!(duration, Duration::new(3_164_760_460_036, 854_775_807));

§Example: converting a negative span

Since a Span is signed and a Duration is unsigned, converting a negative Span to Duration will always fail. One can use Span::signum to get the sign of the span and Span::abs to make the span positive before converting it to a Duration:

use std::time::Duration;

use jiff::{Span, ToSpan};

let span = -86_400.seconds().nanoseconds(1);
let (sign, duration) = (span.signum(), Duration::try_from(span.abs())?);
assert_eq!((sign, duration), (-1, Duration::new(86_400, 1)));
§

type Error = Error

Source§

impl TryFrom<BigInt> for i64

Source§

impl TryFrom<BigInt> for i128

Source§

impl TryFrom<BigInt> for u64

Source§

impl TryFrom<BigInt> for u128

§

impl TryFrom<Bound<'_, PyString>> for PyBackedStr

§

type Error = PyErr

§

impl TryFrom<SDL_PixelFormat> for devela::_dep::sdl3::pixels::PixelFormat

§

type Error = Error

§

impl TryFrom<SDL_ScaleMode> for ScaleMode

§

type Error = ()

§

impl TryFrom<Parts> for Uri

Source§

impl TryFrom<JsValue> for f64

Source§

impl TryFrom<JsValue> for i64

Source§

impl TryFrom<JsValue> for i128

Source§

impl TryFrom<JsValue> for u64

Source§

impl TryFrom<JsValue> for u128

Source§

impl TryFrom<JsValue> for String

Source§

impl TryFrom<char8> for char7

Source§

impl TryFrom<char16> for char7

Source§

impl TryFrom<char16> for char8

Source§

impl TryFrom<I8Vec2> for U8Vec2

Source§

impl TryFrom<I8Vec2> for U16Vec2

Source§

impl TryFrom<I8Vec2> for UVec2

Source§

impl TryFrom<I8Vec2> for U64Vec2

Source§

impl TryFrom<I8Vec3> for U8Vec3

Source§

impl TryFrom<I8Vec3> for U16Vec3

Source§

impl TryFrom<I8Vec3> for UVec3

Source§

impl TryFrom<I8Vec3> for U64Vec3

Source§

impl TryFrom<I8Vec4> for U8Vec4

Source§

impl TryFrom<I8Vec4> for U16Vec4

Source§

impl TryFrom<I8Vec4> for UVec4

Source§

impl TryFrom<I8Vec4> for U64Vec4

Source§

impl TryFrom<I16Vec2> for I8Vec2

Source§

impl TryFrom<I16Vec2> for U8Vec2

Source§

impl TryFrom<I16Vec2> for U16Vec2

Source§

impl TryFrom<I16Vec2> for UVec2

Source§

impl TryFrom<I16Vec2> for U64Vec2

Source§

impl TryFrom<I16Vec3> for I8Vec3

Source§

impl TryFrom<I16Vec3> for U8Vec3

Source§

impl TryFrom<I16Vec3> for U16Vec3

Source§

impl TryFrom<I16Vec3> for UVec3

Source§

impl TryFrom<I16Vec3> for U64Vec3

Source§

impl TryFrom<I16Vec4> for I8Vec4

Source§

impl TryFrom<I16Vec4> for U8Vec4

Source§

impl TryFrom<I16Vec4> for U16Vec4

Source§

impl TryFrom<I16Vec4> for UVec4

Source§

impl TryFrom<I16Vec4> for U64Vec4

Source§

impl TryFrom<IVec2> for I8Vec2

Source§

impl TryFrom<IVec2> for I16Vec2

Source§

impl TryFrom<IVec2> for U8Vec2

Source§

impl TryFrom<IVec2> for U16Vec2

Source§

impl TryFrom<IVec2> for UVec2

Source§

impl TryFrom<IVec2> for U64Vec2

Source§

impl TryFrom<IVec3> for I8Vec3

Source§

impl TryFrom<IVec3> for I16Vec3

Source§

impl TryFrom<IVec3> for U8Vec3

Source§

impl TryFrom<IVec3> for U16Vec3

Source§

impl TryFrom<IVec3> for UVec3

Source§

impl TryFrom<IVec3> for U64Vec3

Source§

impl TryFrom<IVec4> for I8Vec4

Source§

impl TryFrom<IVec4> for I16Vec4

Source§

impl TryFrom<IVec4> for U8Vec4

Source§

impl TryFrom<IVec4> for U16Vec4

Source§

impl TryFrom<IVec4> for UVec4

Source§

impl TryFrom<IVec4> for U64Vec4

Source§

impl TryFrom<I64Vec2> for I8Vec2

Source§

impl TryFrom<I64Vec2> for I16Vec2

Source§

impl TryFrom<I64Vec2> for IVec2

Source§

impl TryFrom<I64Vec2> for U8Vec2

Source§

impl TryFrom<I64Vec2> for U16Vec2

Source§

impl TryFrom<I64Vec2> for UVec2

Source§

impl TryFrom<I64Vec2> for U64Vec2

Source§

impl TryFrom<I64Vec3> for I8Vec3

Source§

impl TryFrom<I64Vec3> for I16Vec3

Source§

impl TryFrom<I64Vec3> for IVec3

Source§

impl TryFrom<I64Vec3> for U8Vec3

Source§

impl TryFrom<I64Vec3> for U16Vec3

Source§

impl TryFrom<I64Vec3> for UVec3

Source§

impl TryFrom<I64Vec3> for U64Vec3

Source§

impl TryFrom<I64Vec4> for I8Vec4

Source§

impl TryFrom<I64Vec4> for I16Vec4

Source§

impl TryFrom<I64Vec4> for IVec4

Source§

impl TryFrom<I64Vec4> for U8Vec4

Source§

impl TryFrom<I64Vec4> for U16Vec4

Source§

impl TryFrom<I64Vec4> for UVec4

Source§

impl TryFrom<I64Vec4> for U64Vec4

Source§

impl TryFrom<U8Vec2> for I8Vec2

Source§

impl TryFrom<U8Vec3> for I8Vec3

Source§

impl TryFrom<U8Vec4> for I8Vec4

Source§

impl TryFrom<U16Vec2> for I8Vec2

Source§

impl TryFrom<U16Vec2> for I16Vec2

Source§

impl TryFrom<U16Vec2> for U8Vec2

Source§

impl TryFrom<U16Vec3> for I8Vec3

Source§

impl TryFrom<U16Vec3> for I16Vec3

Source§

impl TryFrom<U16Vec3> for U8Vec3

Source§

impl TryFrom<U16Vec4> for I8Vec4

Source§

impl TryFrom<U16Vec4> for I16Vec4

Source§

impl TryFrom<U16Vec4> for U8Vec4

Source§

impl TryFrom<UVec2> for I8Vec2

Source§

impl TryFrom<UVec2> for I16Vec2

Source§

impl TryFrom<UVec2> for IVec2

Source§

impl TryFrom<UVec2> for U8Vec2

Source§

impl TryFrom<UVec2> for U16Vec2

Source§

impl TryFrom<UVec3> for I8Vec3

Source§

impl TryFrom<UVec3> for I16Vec3

Source§

impl TryFrom<UVec3> for IVec3

Source§

impl TryFrom<UVec3> for U8Vec3

Source§

impl TryFrom<UVec3> for U16Vec3

Source§

impl TryFrom<UVec4> for I8Vec4

Source§

impl TryFrom<UVec4> for I16Vec4

Source§

impl TryFrom<UVec4> for IVec4

Source§

impl TryFrom<UVec4> for U8Vec4

Source§

impl TryFrom<UVec4> for U16Vec4

Source§

impl TryFrom<U64Vec2> for I8Vec2

Source§

impl TryFrom<U64Vec2> for I16Vec2

Source§

impl TryFrom<U64Vec2> for IVec2

Source§

impl TryFrom<U64Vec2> for I64Vec2

Source§

impl TryFrom<U64Vec2> for U8Vec2

Source§

impl TryFrom<U64Vec2> for U16Vec2

Source§

impl TryFrom<U64Vec2> for UVec2

Source§

impl TryFrom<U64Vec3> for I8Vec3

Source§

impl TryFrom<U64Vec3> for I16Vec3

Source§

impl TryFrom<U64Vec3> for IVec3

Source§

impl TryFrom<U64Vec3> for I64Vec3

Source§

impl TryFrom<U64Vec3> for U8Vec3

Source§

impl TryFrom<U64Vec3> for U16Vec3

Source§

impl TryFrom<U64Vec3> for UVec3

Source§

impl TryFrom<U64Vec4> for I8Vec4

Source§

impl TryFrom<U64Vec4> for I16Vec4

Source§

impl TryFrom<U64Vec4> for IVec4

Source§

impl TryFrom<U64Vec4> for I64Vec4

Source§

impl TryFrom<U64Vec4> for U8Vec4

Source§

impl TryFrom<U64Vec4> for U16Vec4

Source§

impl TryFrom<U64Vec4> for UVec4

Source§

impl TryFrom<Uuid> for NonNilUuid

Source§

impl TryFrom<CString> for String

§

impl TryFrom<Duration> for SignedDuration

§

type Error = Error

§

impl TryFrom<Duration> for Span

Converts a std::time::Duration to a Span.

The span returned from this conversion will only ever have non-zero units of seconds or smaller.

§Errors

This only fails when the given Duration overflows the maximum number of seconds representable by a Span.

§Example

This shows a basic conversion:

use std::time::Duration;

use jiff::{Span, ToSpan};

let duration = Duration::new(86_400, 123_456_789);
let span = Span::try_from(duration)?;
// A duration-to-span conversion always results in a span with
// non-zero units no bigger than seconds.
assert_eq!(
    span.fieldwise(),
    86_400.seconds().milliseconds(123).microseconds(456).nanoseconds(789),
);

§Example: rounding

This example shows how to convert a Duration to a Span, and then round it up to bigger units given a relative date:

use std::time::Duration;

use jiff::{civil::date, Span, SpanRound, ToSpan, Unit};

let duration = Duration::new(450 * 86_401, 0);
let span = Span::try_from(duration)?;
// We get back a simple span of just seconds:
assert_eq!(span.fieldwise(), Span::new().seconds(450 * 86_401));
// But we can balance it up to bigger units:
let options = SpanRound::new()
    .largest(Unit::Year)
    .relative(date(2024, 1, 1));
assert_eq!(
    span.round(options)?,
    1.year().months(2).days(25).minutes(7).seconds(30).fieldwise(),
);
§

type Error = Error

Source§

impl TryFrom<Duration> for TimeDelta

Source§

type Error = &'static str

§

impl TryFrom<Duration> for PollTimeout

§

type Error = PollTimeoutTryFromError

§

impl TryFrom<Error> for Errno

§

type Error = Error

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

Source§

impl TryFrom<NonZero<usize>> for Alignment

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

1.49.0 · Source§

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

§

impl TryFrom<String> for Regex

§

type Error = Error

§

impl TryFrom<String> for HeaderName

§

impl TryFrom<String> for HeaderValue

§

impl TryFrom<String> for Uri

§

impl TryFrom<String> for Authority

§

impl TryFrom<String> for PathAndQuery

§

impl TryFrom<SystemTime> for Timestamp

§

type Error = Error

§

impl TryFrom<SystemTime> for Zoned

§

type Error = Error

Source§

impl TryFrom<SystemTime> for UnixTimeI64

Source§

impl TryFrom<SystemTime> for UnixTimeU32

Available on crate features cast and error only.
Source§

impl TryFrom<TimeDelta> for Duration

Source§

type Error = &'static str

Source§

impl TryFrom<UnixTimeI64> for UnixTimeU32

§

impl TryFrom<Vec<u8>> for HeaderName

§

impl TryFrom<Vec<u8>> for HeaderValue

§

impl TryFrom<Vec<u8>> for Uri

§

impl TryFrom<Vec<u8>> for Authority

§

impl TryFrom<Vec<u8>> for PathAndQuery

Source§

impl TryFrom<Vec<u8>> for Uuid

1.87.0 · Source§

impl TryFrom<Vec<u8>> for String

§

impl TryFrom<PollTimeout> for i8

§

type Error = <i8 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for i16

§

type Error = <i16 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for u8

§

type Error = <u8 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for u16

§

type Error = <u16 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for u32

§

type Error = <u32 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for u64

§

type Error = <u64 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for u128

§

type Error = <u128 as TryFrom<i32>>::Error

§

impl TryFrom<PollTimeout> for Duration

§

type Error = ()

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

Source§

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

Source§

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

Source§

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

§

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

§

type Error = Error

1.72.0 · Source§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

Source§

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

§

impl<'a, 'py, T> TryFrom<BoundRef<'a, 'py, T>> for PyRef<'py, T>
where T: PyClass,

§

impl<'a, 'py, T> TryFrom<BoundRef<'a, 'py, T>> for PyRefMut<'py, T>
where T: PyClass<Frozen = False>,

§

impl<'a, K, V, S, T> TryFrom<&'a HashMap<K, V, S>> 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");
§

type Error = Error

1.34.0 · 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 · 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));
§

impl<'a, T, const N: usize> TryFrom<Box<'a, [T]>> for devela::_dep::bumpalo::boxed::Box<'a, [T; N]>

This impl replaces unsize coercion.

§

type Error = Box<'a, [T]>

Source§

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

Source§

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

§

impl<'py> TryFrom<&Bound<'py, PyAny>> for Bound<'py, PyByteArray>

§

type Error = PyErr

§

impl<'py> TryFrom<&Bound<'py, PyAny>> for Bound<'py, PyMemoryView>

§

type Error = PyErr

Source§

impl<T> TryFrom<Interval<T>> for Range<T>

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

Source§

impl<T> TryFrom<Interval<T>> for RangeFrom<T>

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

Source§

impl<T> TryFrom<Interval<T>> for RangeFull

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

Source§

impl<T> TryFrom<Interval<T>> for RangeInclusive<T>

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

Source§

impl<T> TryFrom<Interval<T>> for RangeTo<T>

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

Source§

impl<T> TryFrom<Interval<T>> for RangeToInclusive<T>

§Errors

Returns IncompatibleBounds if the bounds are not compatible.

1.43.0 · Source§

impl<T, A, const N: usize> TryFrom<Arc<[T], A>> for devela::_dep::_alloc::sync::Arc<[T; N], A>
where A: Allocator,

Source§

type Error = Arc<[T], A>

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.34.0 · 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 · 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>

1.59.0 · 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>

§

impl<T, const N: usize> TryFrom<Arc<[T]>> for devela::all::Arc<[T; N]>

§

type Error = Arc<[T]>

1.43.0 · Source§

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

1.66.0 · Source§

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

Source§

type Error = Vec<T>

Source§

impl<V: DataValue> TryFrom<DataValue64With<V>> for Angle<i64>

Source§

impl<V: DataValue> TryFrom<DataValue64With<V>> for Angle<u32>

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for bool

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for char

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for f32

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for f64

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for i8

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for i16

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for i32

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for i64

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for u8

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for u16

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for u32

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for u64

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for [u8; 1]

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for [u8; 2]

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for [u8; 4]

Source§

impl<V: DataValueCopy> TryFrom<DataValue64CopyWith<V>> for [u8; 8]

Source§

impl<const CAP: usize> TryFrom<&str> for StringNonul<CAP>

Available on crate feature _str_nonul only.
Source§

impl<const CAP: usize> TryFrom<&str> for StringU8<CAP>

Source§

impl<const CAP: usize> TryFrom<&[u8]> for StringNonul<CAP>

Available on crate feature _str_nonul only.
Source§

impl<const CAP: usize> TryFrom<&[u8]> for StringU8<CAP>

Source§

impl<const V: i8> TryFrom<i8> for devela::_info::examples::niche::NonValueI8<V>

Available on doc or test only.
Source§

impl<const V: i8> TryFrom<i8> for devela::all::NonValueI8<V>

Source§

impl<const V: u8> TryFrom<u8> for NonValueU8<V>

Source§

impl<const V: u16> TryFrom<u16> for NonValueU16<V>