Trait From
trait From<T>: Sized
Used to do value-to-value conversions while consuming the input value. It is the reciprocal of
Into.
One should always prefer implementing From over Into
because implementing From automatically provides one with an implementation of Into
thanks to the blanket implementation in the standard library.
Only implement Into when targeting a version prior to Rust 1.41 and converting to a type
outside the current crate.
From was not able to do these types of conversions in earlier versions because of Rust's
orphaning rules.
See Into for more details.
Prefer using Into over From when specifying trait bounds on a generic function
to ensure that types that only implement Into can be used as well.
The From trait is also very useful when performing error handling. When constructing a function
that is capable of failing, the return type will generally be of the form Result<T, E>.
From simplifies error handling by allowing a function to return a single error type
that encapsulates multiple error types. See the "Examples" section and the book for more
details.
Note: This trait must not fail. The From trait is intended for perfect conversions.
If the conversion can fail or is not perfect, use TryFrom.
Generic Implementations
From<T> for UimpliesInto<U> for TFromis reflexive, which means thatFrom<T> for Tis implemented
When to implement From
While there's no technical restrictions on which conversions can be done using
a From implementation, the general expectation is that the conversions
should typically be restricted as follows:
-
The conversion is infallible: if the conversion can fail, use
TryFrominstead; don't provide aFromimpl that panics. -
The conversion is lossless: semantically, it should not lose or discard information. For example,
i32: From<u16>exists, where the original value can be recovered usingu16: TryFrom<i32>. AndString: From<&str>exists, where you can get something equivalent to the original value viaDeref. ButFromcannot be used to convert fromu32tou16, since that cannot succeed in a lossless way. (There's some wiggle room here for information not considered semantically relevant. For example,Box<[T]>: From<Vec<T>>exists even though it might not preserve capacity, like how two vectors can be equal despite differing capacities.) -
The conversion is value-preserving: the conceptual kind and meaning of the resulting value is the same, even though the Rust type and technical representation might be different. For example
-1_i8 as u8is lossless, sinceascasting back can recover the original value, but that conversion is not available viaFrombecause-1and255are different conceptual values (despite being identical bit patterns technically). Butf32: From<i16>is available because1_i16and1.0_f32are conceptually the same real number (despite having very different bit patterns technically).String: From<char>is available because they're both text, butString: From<u32>is not available, since1(a number) and"1"(text) are too different. (Converting values to text is instead covered by theDisplaytrait.) -
The conversion is obvious: it's the only reasonable conversion between the two types. Otherwise it's better to have it be a named method or constructor, like how
str::as_bytesis a method and how integers have methods likeu32::from_ne_bytes,u32::from_le_bytes, andu32::from_be_bytes, none of which areFromimplementations. Whereas there's only one reasonable way to wrap anIpv6Addrinto anIpAddr, thusIpAddr: From<Ipv6Addr>exists.
Examples
String implements From<&str>:
An explicit conversion from a &str to a String is done as follows:
let string = "hello".to_string;
let other_string = Stringfrom;
assert_eq!;
While performing error handling it is often useful to implement From for your own error type.
By converting underlying error types to our own custom error type that encapsulates the
underlying error type, we can return a single error type without losing information on the
underlying cause. The '?' operator automatically converts the underlying error type to our
custom error type with From::from.
use fs;
use io;
use num;
Required Methods
fn from(value: T) -> SelfConverts to this type from the input type.
Implementors
impl<T> From for DropGuard<T, F>impl<T> From for poly64x1x2_timpl<T> From for Errorimpl<T> From for float32x4_timpl From for u64impl<T> From for CharPredicateSearcher<'a, F>impl From for f64x2impl<T> From for LazyCell<T, F>impl<T> From for SyncUnsafeCell<T>impl<T> From for IntoIter<T, N>impl<N: usize> From for Mask<i64, N>impl<T> From for SYimpl From for f32impl<T> From for uint64x1x2_timpl<T> From for Infallibleimpl From for NonZero<u128>impl<T> From for RangeInclusive<T>impl<T> From for vector_floatimpl<T> From for DebugAsHeximpl From for TryFromIntErrorimpl<T> From for m256iimpl From for i32impl<T> From for int64x1x2_timpl From for isizex8impl<T> From for TryFromSliceErrorimpl From for __m256iimpl From for u128impl From for usizeimpl<T> From for float32x2x2_timpl<'a, T> From for Option<&'a T>impl From for NonZero<i64>impl<T> From for poly64x2_timpl<T> From for OnceCell<T>impl<T> From for DebugTuple<'a, 'b>impl From for f64impl<T> From for UnwindTerminateReasonimpl<T> From for AtomicI8impl<T> From for vector_bool_longimpl<T> From for float16x4x2_timpl From for __m128iimpl<T> From for Iter<'a, T>impl<T> From for Flatten<I>impl<T> From for Ipv4Addrimpl<T> From for Timpl From for i64impl<T> From for float64x2x2_timpl<T> From for Skip<I>impl<T> From for uint32x2x2_timpl<N: usize> From for Mask<isize, N>impl<T> From for Cell<T>impl<T> From for ByRefSized<'a, I>impl<T> From for AtomicI64impl From for u16impl From for u16x8impl<T> From for Result<T, E>impl<T> From for f16x2impl<T> From for f128impl From for u128impl From for __m512iimpl<T> From for AtomicUsizeimpl From for NonZero<i32>impl<T> From for int32x2x2_timpl From for AtomicI8impl<T> From for RSplit<'a, T, P>impl<T> From for uint8x8_timpl From for isizeimpl<T> From for Clamp<Idx>impl<T> From for f64impl<T> From for EscapeDebug<'a>impl<T> From for poly16x4x2_timpl From for IpAddrimpl From for u32x16impl<T> From for Context<'a>impl<T> From for Localityimpl<T> From for Infallibleimpl From for u16impl From for __m256iimpl<T> From for RangeInclusive<Idx>impl<T> From for MatchIndices<'a, P>impl<T, N: usize> From for [bool; N]impl<T> From for Orderingimpl<T> From for i8impl<T> From for SplitNMut<'a, T, P>impl<T> From for uint16x4x2_timpl From for f64impl<T> From for m128iimpl<T> From for NonZero<T>impl From for NonZero<usize>impl<T> From for Iter<'a, T>impl From for u64x4impl<T> From for Signimpl<T> From for __m128iimpl<T> From for Ipv6MulticastScopeimpl<T> From for int16x4x2_timpl From for i128impl From for AtomicUsizeimpl From for __m128iimpl<T> From for OnceCell<T>impl<T> From for charimpl<T> From for uint16x4_timpl<T> From for i64impl<N: usize> From for Mask<i64, N>impl<T> From for vector_signed_charimpl<T> From for Range<Idx>impl<T> From for RefCell<T>impl<T> From for AssertUnwindSafe<T>impl<T> From for NumBuffer<T>impl<T> From for Saturating<T>impl<T> From for poly8x8x2_timpl<T> From for RangeToInclusive<Idx>impl From for SocketAddrimpl<T> From for ToLowercaseimpl<T> From for float64x1_timpl From for NonZero<i16>impl<T> From for i16impl From for usizex2impl<T> From for ParseCharErrorimpl From for f64impl<T> From for Cell<T>impl<T> From for uint8x8x2_timpl<T> From for DynMetadata<Dyn>impl<T> From for Ipv6Addrimpl From for u128impl<T> From for __m256iimpl<T> From for int8x8x2_timpl<N: usize> From for Mask<isize, N>impl<T> From for RangeToInclusive<Idx>impl<T> From for uint32x2_timpl From for f64impl From for __m256iimpl<T> From for EscapeUnicodeimpl<T> From for Take<I>impl<T> From for vector_signed_shortimpl From for NonZero<u128>impl<T> From for legacy::RangeFrom<T>impl<T> From for AtomicBoolimpl<T> From for PhantomContravariantLifetime<'a>impl From for TryFromIntErrorimpl From for i64impl<T> From for DebugSet<'a, 'b>impl<T> From for i8impl From for u8x32impl<T> From for IpAddrimpl From for charimpl From for __m128iimpl<T> From for Typeimpl From for i8impl<'a, T> From for Option<&'a mut T>impl From for NonZero<i128>impl<T> From for TryFromCharErrorimpl<T> From for AtomicPtr<T>impl<T> From for __m512iimpl<T> From for i64impl<T> From for OneSidedRangeBoundimpl From for f128impl<T> From for uint64x1_timpl<T> From for SocketAddrV6impl<T> From for Durationimpl From for i16x8impl<T> From for EscapeDefaultimpl<T> From for Cloned<I>impl<T> From for vector_signed_intimpl<T> From for Empty<T>impl From for __m512impl<T> From for AtomicU16impl<T> From for Tupleimpl<T> From for i16impl From for i128impl From for AtomicU32impl<N: usize> From for Mask<i8, N>impl<T> From for PollFn<F>impl<T> From for DecodeUtf16Errorimpl From for u32impl<T> From for vector_bool_charimpl From for i32x16impl<T> From for Range<Idx>impl From for NonZero<i64>impl<T> From for i128impl<T> From for Option<T>impl<T> From for poly64x2x4_timpl From for __m256dimpl<T> From for NonNull<T>impl<T> From for OnceWith<F>impl<T> From for RangeFullimpl From for isizeimpl<T> From for __m128bhimpl<T> From for uint8x16_timpl<T> From for i32impl<T> From for uint64x2x4_timpl<T> From for EscapeDebugimpl<T> From for vector_floatimpl<T> From for FromCoroutine<G>impl From for u32impl From for i64x4impl<T> From for LocalWakerimpl<T> From for SplitInclusiveMut<'a, T, P>impl<N: usize> From for Mask<i16, N>impl<T> From for Filter<I, P>impl<T> From for ControlFlow<B, C>impl From for f128impl<T> From for int64x2x4_timpl<T> From for UnwindActionArgimpl<T> From for EncodeUtf16<'a>impl<T> From for vector_bool_shortimpl From for NonZero<u32>impl<T> From for UnsafeCell<T>impl<T> From for Once<T>impl<T> From for RSplitN<'a, P>impl From for i128impl<T> From for float32x4x4_timpl<T> From for Exclusive<T>impl From for isizex2impl<T> From for CharTryFromErrorimpl<T, N: usize> From for Simd<T, N>impl<T> From for Ready<T>impl<T> From for Assumeimpl<T> From for PhantomInvariant<T>impl<T> From for __m128himpl<T> From for UnsafeCell<T>impl<T> From for uint16x8_timpl From for u8impl<T> From for CharSearcher<'a>impl<T> From for float16x8x4_timpl<T> From for PhantomCovariantLifetime<'a>impl<T> From for Simd<T, N>impl From for NonZero<i32>impl<T> From for SplitN<'a, P>impl<T> From for BorrowedCursor<'a>impl<T> From for MaybeUninit<T>impl<T> From for f32impl From for f128impl<T> From for uint32x4x4_timpl From for __m256iimpl From for Ipv6Addrimpl<T> From for vector_bool_intimpl<T> From for RefMut<'b, T>impl<T> From for RSplitTerminator<'a, P>impl<T> From for i128impl<T> From for Option<T>impl From for u64impl From for AtomicU8impl<T> From for float64x1x4_timpl<T> From for int32x4x4_timpl<N: usize> From for Mask<i8, N>impl<T> From for AllocErrorimpl<T> From for DebugList<'a, 'b>impl From for f128impl From for i8x32impl<T> From for i32impl From for u32impl From for __m128iimpl From for NonZero<i16>impl<T> From for IterMut<'a, T>impl<T> From for uint32x4_timpl<T> From for SplitTerminator<'a, P>impl<T> From for poly16x8x4_timpl<T> From for CharSliceSearcher<'a, 'b>impl<T> From for RangeFrom<T>impl<T> From for poly64x2x3_timpl<T> From for Scan<I, St, F>impl<T> From for AddrParseErrorimpl From for i128impl<T> From for u128impl<T> From for LayoutErrorimpl<T> From for uint16x8x4_timpl<T> From for uint64x2x3_timpl From for u32x4impl<T> From for RSplit<'a, P>impl From for i16impl<T> From for UnsafePinned<T>impl<T> From for vector_bool_long_longimpl From for __m512iimpl<T> From for UnsafeCell<T>impl<T> From for Inspect<I, F>impl<T> From for boolimpl From for NonZero<i64>impl<T> From for SplitMut<'a, T, P>impl<T> From for ChunkByMut<'a, T, P>impl<T> From for AtomicU32impl<T> From for Repeat<A>impl<T> From for RSplitN<'a, T, P>impl<T> From for int16x8x4_timpl<T> From for u16impl From for f32impl<T> From for int64x2x3_timpl<T> From for SplitInclusive<'a, P>impl<T> From for AtomicIsizeimpl From for crate::num::NonZero<usize>impl<T> From for Split<'a, P>impl From for SocketAddrimpl From for f32x16impl<T> From for v128impl<T> From for uint64x2_timpl<T> From for poly8x16x4_timpl From for isizeimpl<T> From for float32x4x3_timpl From for __m256iimpl<T> From for SocketAddrimpl<N: usize> From for Mask<i16, N>impl<T> From for vector_unsigned_longimpl<T> From for SplitAsciiWhitespace<'a>impl From for u64impl<T> From for u64impl<T> From for BuildHasherDefault<H>impl<T> From for Bytes<'a>impl<T> From for uint8x16x4_timpl<T> From for float16x8x3_timpl<T> From for ManuallyDrop<T>impl<T> From for Rev<T>impl<T> From for PhantomData<T>impl From for NonZero<i128>impl From for f64x4impl<T> From for Mask<T, N>impl<T> From for m256dimpl From for f16impl<T> From for Pending<T>impl<T> From for Map<I, F>impl<T> From for int8x16x4_timpl<T> From for RangeInclusive<Idx>impl<T> From for SplitWhitespace<'a>impl<T> From for uint32x4x3_timpl<T> From for Timpl<T> From for LaneCount<N>impl<T> From for usizeimpl<T> From for RangeIter<A>impl<T> From for RangeFrom<Idx>impl From for u64impl<T> From for float64x1x3_timpl<T> From for SipHasherimpl<T> From for int8x8_timpl<T> From for float16x8_timpl<T> From for int32x4x3_timpl<N: usize> From for Mask<i32, N>impl<T> From for u128impl<T> From for MaybeDangling<P>impl<T> From for GetDisjointMutErrorimpl<T> From for LinesAny<'a>impl<T> From for Utf8Pattern<'a>impl From for f64impl From for __m512iimpl<T> From for Wrapping<T>impl<T> From for Chars<'a>impl<'data> From for BorrowedBuf<'data>impl From for NonZero<u64>impl<T> From for RChunksMut<'a, T>impl<T> From for poly16x8x3_timpl<T> From for u32impl<T> From for Cycle<I>impl<T> From for IterMut<'a, A>impl From for i16impl<T> From for u16impl<T, N: usize> From for [T; N]impl<T> From for ParseBoolErrorimpl<T> From for uint16x8x3_timpl From for __m256iimpl From for u16impl<T> From for isizeimpl From for NonZero<i64>impl<T> From for SplitInclusive<'a, T, P>impl<T> From for Iter<'a, A>impl From for AtomicI64impl<T> From for FormattingOptionsimpl<T> From for int16x4_timpl<T> From for int16x8x3_timpl From for f64impl<T> From for FromBytesWithNulErrorimpl<T> From for u64impl From for u16x16impl<T> From for fn(_: T) -> Retimpl<T> From for RangeInclusiveIter<A>impl From for Ipv6Addrimpl From for __m128impl<T> From for [MaybeUninit<T>; N]impl<T> From for Split<'a, T, P>impl<T> From for poly8x16x3_timpl From for u128impl<T> From for Enumerate<I>impl<N: usize> From for Mask<i64, N>impl<T> From for Timpl<T> From for usizeimpl<T> From for m128dimpl<T> From for uint8x16x3_timpl From for i32x4impl<T> From for Fuse<I>impl From for NonZero<i32>impl<T> From for RangeToInclusive<T>impl From for __m512iimpl<T> From for BorrowedBuf<'data>impl<T> From for __m128dimpl<T> From for IntoIter<A>impl From for i64impl<T> From for int32x2_timpl<T> From for int8x16x3_timpl<T> From for Chain<A, B>impl<T> From for vector_bool_charimpl<T> From for Ref<'b, T>impl<T> From for AtomicI16impl<T> From for charimpl<T> From for *const Timpl From for i32impl<T> From for u32impl<T> From for poly64x2x2_timpl From for u64x8impl<T> From for Fieldimpl From for NonZero<i128>impl<T> From for Poll<T>impl From for __m256iimpl<T> From for Discriminant<T>impl From for f64impl<T> From for ChunksMut<'a, T>impl<T> From for SyncUnsafeCell<T>impl<T> From for uint64x2x2_timpl From for NonZero<u16>impl<T> From for (T)impl<T> From for RChunks<'a, T>impl<T> From for isizeimpl<T> From for SimdAlignimpl<T> From for c_voidimpl<T> From for ChunkBy<'a, T, P>impl From for i32impl From for usizex4impl<T> From for __m256dimpl<T> From for int64x2x2_timpl<N: usize> From for Mask<i32, N>impl<T> From for FilterMap<I, F>impl<T> From for Alignmentimpl<T> From for CoroutineState<Y, R>impl<T> From for int64x1_timpl From for u128impl<T> From for vector_bool_shortimpl<T> From for ContextBuilder<'a>impl<T> From for TryFromIntErrorimpl From for NonZero<isize>impl<T> From for float32x4x2_timpl From for AtomicI16impl<T> From for ParseIntErrorimpl<T> From for OptionFlatten<A>impl From for f32impl<T> From for PhantomContravariant<T>impl<T> From for RepeatN<A>impl<T> From for Reverse<T>impl<T> From for vector_unsigned_charimpl From for __m512iimpl<T> From for MapWindows<I, F, N>impl<T> From for bf16impl<T> From for CharIndices<'a>impl<T> From for u8impl<T> From for float16x8x2_timpl From for Ipv4Addrimpl<T> From for Copied<I>impl<T> From for RChunksExact<'a, T>impl From for u128impl<N: usize> From for Mask<i64, N>impl<T> From for __m512dimpl<T> From for SocketAddrV4impl<T> From for uint32x4x2_timpl From for f128impl From for u8x64impl<T> From for int8x16_timpl<'data> From for BorrowedBuf<'data>impl From for __m256iimpl<T> From for Alignmentimpl<T> From for vector_bool_intimpl From for NonZero<u128>impl<T> From for legacy::Range<T>impl<T> From for float64x1x2_timpl<T> From for f16impl<T> From for int32x4x2_timpl From for i32impl<T: PointeeSized> From for NonNull<T>impl<T> From for Lines<'a>impl<T> From for FromBytesUntilNulErrorimpl<T> From for vector_unsigned_shortimpl From for i16x16impl<T> From for FromIter<I>impl<T> From for RangeFromIter<A>impl<T> From for PhantomPinnedimpl<T> From for poly16x8x2_timpl From for u32impl From for __m128iimpl From for NonZero<i128>impl<T> From for SplitN<'a, T, P>impl<T> From for RMatches<'a, P>impl From for f128impl<T> From for __m512bhimpl<T> From for Chunks<'a, T>impl<T> From for uint16x8x2_timpl<T> From for ArrayWindows<'a, T, N>impl<T> From for int16x8_timpl From for Ipv6Addrimpl From for f32x4impl<T> From for RChunksExactMut<'a, T>impl From for u128impl From for __m512dimpl<T> From for int16x8x2_timpl<N: usize> From for Mask<isize, N>impl<T> From for Arguments<'a>impl From for Infallibleimpl<T> From for ReturnToArgimpl<T> From for u8impl<T> From for vector_unsigned_intimpl From for NonZero<i64>impl<T> From for poly8x16x2_timpl<T> From for legacy::RangeToInclusive<T>impl From for i64x8impl From for i128impl<T> From for DecodeUtf16<I>impl<T> From for Formatter<'a>impl<T> From for FlatMap<I, U, F>impl<T> From for __m512himpl<T> From for ChunksExact<'a, T>impl<T> From for uint8x16x2_timpl<T> From for TakeWhile<I, P>impl<T> From for int32x4_timpl From for i64impl<T> From for CharArrayRefSearcher<'a, 'b, N>impl From for NonZero<i128>impl<T> From for (T)impl From for isizex4impl<T> From for Layoutimpl<T> From for IntersperseWith<I, G>impl<T> From for Orderingimpl<T> From for int8x16x2_timpl<T> From for objc_selectorimpl From for f128impl From for __m128iimpl<T> From for FromFn<F>impl<T> From for Yeet<T>impl<T> From for PanicInfo<'a>impl From for NonZero<u32>impl<I: ~const Into<crate::net::IpAddr>> From for SocketAddrimpl<T> From for vector_unsigned_long_longimpl From for i64impl From for AtomicU64impl<T> From for Source<'a>impl<T> From for objc_classimpl<N: usize> From for Mask<i8, N>impl From for charimpl From for __m512iimpl<T> From for EscapeUnicode<'a>impl<T> From for TryFromIntErrorimpl<T> From for Zip<A, B>impl<T> From for FromFn<F>impl From for NonZero<i64>impl<T> From for int64x2_timpl From for f64impl<T> From for vector_signed_longimpl<T> From for Windows<'a, T>impl<T> From for SearchStepimpl From for i8x64impl From for Ipv4Addrimpl From for __m256iimpl From for usizeimpl<T> From for vector_doubleimpl<T> From for ToUppercaseimpl<T> From for m256impl<N: usize> From for Mask<isize, N>impl From for f128impl From for u32x8impl From for NonZero<usize>impl<T> From for Range<T>impl From for __m128iimpl<T> From for float16x4_timpl From for i64impl<T> From for UnsafePinned<T>impl<T: PointeeSized> From for NonNull<T>impl<T> From for ()impl<T> From for vector_doubleimpl From for u32impl From for u64impl<T> From for poly64x1x4_timpl From for u64x2impl<T> From for Exclusive<T>impl From for NonZero<isize>impl<T> From for Bound<T>impl<T> From for TypeIdimpl From for __m512iimpl From for f16impl<T> From for Pin<Ptr>impl<T> From for Utf8Errorimpl<T> From for uint64x1x4_timpl<T> From for RawWakerimpl<T> From for VaList<'a>impl From for IpAddrimpl From for i16impl From for AtomicU16impl From for f64x8impl<T> From for DebugStruct<'a, 'b>impl<T> From for poly8x8_timpl<T> From for Matches<'a, P>impl<T> From for int64x1x4_timpl<N: usize> From for Mask<i8, N>impl From for TryFromSliceErrorimpl<T> From for Poll<T>impl<T> From for AtomicU8impl<T> From for Successors<T, F>impl<T> From for ChunksExactMut<'a, T>impl From for NonZero<i128>impl<T> From for float32x2x4_timpl From for AtomicBoolimpl<T> From for AtomicI32impl<T> From for Arrayimpl From for i128impl From for __m128iimpl<T> From for Bytes<'a>impl<T> From for AtomicU64impl<T> From for m128impl<T> From for float16x4x4_timpl<'data> From for BorrowedBuf<'data>impl<T> From for IntoIter<T>impl From for i128impl<T> From for __m128impl<T> From for Utf8Chunks<'a>impl<T> From for [T; 1]impl<T> From for UnsafePinned<T>impl<T> From for AtomicOrderingimpl<T> From for float64x2x4_timpl<T> From for PhantomCovariant<T>impl<T> From for IntErrorKindimpl<T> From for poly16x4_timpl<T> From for uint32x2x4_timpl From for f64impl From for u8x16impl From for usizeimpl<T> From for MapWhile<I, P>impl<T> From for vector_unsigned_charimpl From for __m512iimpl<T> From for RawWakerVTableimpl<T> From for Peekable<I>impl From for NonZero<u64>impl<T> From for Option<T>impl<T> From for Wakerimpl<T> From for float64x2_timpl<T> From for Exclusive<T>impl<T> From for int32x2x4_timpl From for i128impl<T> From for RangeFrom<Idx>impl<N: usize> From for Mask<i16, N>impl<T> From for StepBy<I>impl<T> From for OnceCell<T>impl From for u16x32impl<T> From for BorrowMutErrorimpl<T> From for poly16x4x4_timpl<T> From for poly64x1x3_timpl From for __m256impl From for NonZero<i128>impl<T> From for StrSearcher<'a, 'b>impl<T> From for Intersperse<I>impl<T> From for __m256impl<T> From for RSplitMut<'a, T, P>impl From for f128impl<T> From for BasicBlockimpl<T> From for float32x2_timpl<T> From for uint16x4x4_timpl<T> From for Location<'a>impl<T> From for uint64x1x3_timpl<T> From for Poll<T>impl<T> From for CpuidResultimpl<T> From for BorrowErrorimpl<T> From for vector_unsigned_shortimpl<T> From for EscapeDefault<'a>impl From for IpAddrimpl From for i32x8impl From for u32impl From for __m128dimpl<T> From for int16x4x4_timpl<T> From for int64x1x3_timpl<N: usize> From for Mask<i32, N>impl<T> From for RSplitNMut<'a, T, P>impl From for f16impl<T> From for vector_signed_charimpl<T> From for RefCell<T>impl From for NonZero<u64>impl<T> From for poly8x8x4_timpl<T> From for float32x2x3_timpl<T> From for legacy::RangeInclusive<T>impl From for i64x2impl From for i128impl From for __m512iimpl<T> From for ArrayChunks<I, N>impl<T> From for __m512impl<T> From for EscapeAscii<'a>impl<T> From for poly64x1_timpl<T> From for uint8x8x4_timpl<T> From for float16x4x3_timpl From for u64impl<T> From for TryFromFloatSecsErrorimpl<T> From for IterMut<'a, T>impl<T> From for vector_unsigned_intimpl From for u128impl From for NonZero<i32>impl<T> From for Utf8Chunk<'a>impl From for AtomicIsizeimpl From for usizex8impl<T> From for float64x2x3_timpl<T> From for int8x8x4_timpl<T> From for uint32x2x3_timpl From for f32impl<T> From for vector_signed_shortimpl From for IpAddrimpl<T> From for int32x2x3_timpl From for i32impl<N: usize> From for Mask<i16, N>impl<T> From for EscapeDefaultimpl<T> From for __m256bhimpl From for u8impl From for __m128iimpl<T> From for poly8x16_timpl<T> From for poly16x4x3_timpl<T> From for TypeKindimpl From for NonZero<isize>impl<T> From for AtomicPtr<T>impl<T> From for SyncUnsafeCell<T>impl<T> From for RangeTo<Idx>impl<T> From for RMatchIndices<'a, P>impl From for usizeimpl<T> From for SkipWhile<I, P>impl<T> From for uint16x4x3_timpl From for i8x16impl<T> From for RefCell<T>impl<T> From for PanicMessage<'a>impl From for IpAddrimpl<T> From for vector_signed_intimpl From for __m512iimpl<T> From for Lastimpl From for isizeimpl<T> From for neverimpl<T> From for int16x4x3_timpl<T, N: usize> From for Mask<T, N>impl<T> From for AsciiCharimpl From for f128impl<T> From for RepeatWith<F>impl<T> From for __m256himpl From for i16x32impl From for NonZero<u128>impl<T> From for poly16x8_timpl<T> From for poly8x8x3_timpl<T> From for CharArraySearcher<'a, N>impl From for __m256iimpl From for i64impl<N: usize> From for Mask<i32, N>impl<T> From for DebugMap<'a, 'b>impl<T> From for uint8x8x3_timpl<T> From for Cell<T>impl<T> From for vector_signed_long_longimpl From for f32x8impl From for NonZero<i128>impl From for AtomicI32impl From for __m128iimpl<T> From for PhantomInvariantLifetime<'a>impl<T> From for int8x8x3_timpl From for f32impl<T> From for FpCategory