# Trait std::convert::From

1.0.0 · source ·

    pub trait From<T>: Sized {
        // Required method
        fn from(value: T) -> Self;
    }

Expand description

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 using `From` when specifying trait bounds on a generic function. This way, types that directly implement `Into` can be used as arguments as well.

The `From` 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>`. The `From` trait simplifies error handling by allowing a function to return a single error type that encapsulate 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 U` implies `Into``<U> for T`
- `From` is reflexive, which means that `From<T> for T` is 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 `TryFrom` instead; don’t provide a `From` impl 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 using `u16: TryFrom<i32>`. And `String: From<&str>` exists, where you can get something equivalent to the original value via `Deref`. But `From` cannot be used to convert from `u32` to `u16`, 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 u8` is lossless, since `as` casting back can recover the original value, but that conversion is not available via `From` because `-1` and `255` are different conceptual values (despite being identical bit patterns technically). But `f32: From<i16>` is available because `1_i16` and `1.0_f32` are conceptually the same real number (despite having very different bit patterns technically). `String: From<char>` is available because they’re both text, but `String: From<u32>` is not available, since `1` (a number) and `"1"` (text) are too different. (Converting values to text is instead covered by the `Display` trait.)

- 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_bytes` is a method and how integers have methods like `u32::from_ne_bytes`, `u32::from_le_bytes`, and `u32::from_be_bytes`, none of which are `From` implementations. Whereas there’s only one reasonable way to wrap an `Ipv6Addr` into an `IpAddr`, thus `IpAddr: 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 = String::from("hello");

    assert_eq!(string, other_string);

Run

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 std::fs;
    use std::io;
    use std::num;

    enum CliError {
        IoError(io::Error),
        ParseError(num::ParseIntError),
    }

    impl From<io::Error> for CliError {
        fn from(error: io::Error) -> Self {
            CliError::IoError(error)
        }
    }

    impl From<num::ParseIntError> for CliError {
        fn from(error: num::ParseIntError) -> Self {
            CliError::ParseError(error)
        }
    }

    fn open_and_parse_file(file_name: &str) -> Result<i32, CliError> {
        let mut contents = fs::read_to_string(&file_name)?;
        let num: i32 = contents.trim().parse()?;
        Ok(num)
    }

Run

## Required Methods§

source

#### fn from(value: T) -> Self

Converts to this type from the input type.

## Object Safety§

This trait is not object safe.

## Implementors§

source§

### impl From<&str> for Vec<u8>

1.17.0 · source§

### impl From<&str> for Box<str>

1.6.0 · source§

### impl From<&str> for Box<dyn Error>

1.21.0 · source§

### impl From<&str> for Rc<str>

source§

### impl From<&str> for String

1.21.0 · source§

### impl From<&str> for Arc<str>

1.17.0 · source§

### impl From<&CStr> for Box<CStr>

1.7.0 · source§

### impl From<&CStr> for CString

1.24.0 · source§

### impl From<&CStr> for Rc<CStr>

1.24.0 · source§

### impl From<&CStr> for Arc<CStr>

1.17.0 · source§

### impl From<&OsStr> for Box<OsStr>

1.24.0 · source§

### impl From<&OsStr> for Rc<OsStr>

1.24.0 · source§

### impl From<&OsStr> for Arc<OsStr>

1.17.0 · source§

### impl From<&Path> for Box<Path>

1.24.0 · source§

### impl From<&Path> for Rc<Path>

1.24.0 · source§

### impl From<&Path> for Arc<Path>

1.35.0 · source§

### impl From<&String> for String

1.44.0 · source§

### impl From<&mut str> for String

1.45.0 · source§

### impl From<Cow<'_, str>> for Box<str>

1.45.0 · source§

### impl From<Cow<'_, CStr>> for Box<CStr>

1.45.0 · source§

### impl From<Cow<'_, OsStr>> for Box<OsStr>

1.45.0 · source§

### impl From<Cow<'_, Path>> for Box<Path>

source§

### impl From<TryReserveErrorKind> for TryReserveError

1.14.0 · source§

### impl From<ErrorKind> for Error

Intended for use for errors not exposed to the user, where allocating onto the heap (for normal construction via Error::new) is too costly.

1.36.0 · source§

### impl From<Infallible> for TryFromSliceError

1.34.0 · source§

### impl From<Infallible> for TryFromIntError

1.68.0 · source§

### impl From<bool> for f32

1.68.0 · source§

### impl From<bool> for f64

1.28.0 · source§

### impl From<bool> for i8

1.28.0 · source§

### impl From<bool> for i16

1.28.0 · source§

### impl From<bool> for i32

1.28.0 · source§

### impl From<bool> for i64

1.28.0 · source§

### impl From<bool> for i128

1.28.0 · source§

### impl From<bool> for isize

1.28.0 · source§

### impl From<bool> for u8

1.28.0 · source§

### impl From<bool> for u16

1.28.0 · source§

### impl From<bool> for u32

1.28.0 · source§

### impl From<bool> for u64

1.28.0 · source§

### impl From<bool> for u128

1.28.0 · source§

### impl From<bool> for usize

1.24.0 · source§

### impl From<bool> for AtomicBool

1.13.0 · source§

### impl From<char> for u32

1.51.0 · source§

### impl From<char> for u64

1.51.0 · source§

### impl From<char> for u128

1.46.0 · source§

### impl From<char> for String

1.6.0 · source§

### impl From<f32> for f64

1.6.0 · source§

### impl From<i8> for f32

1.6.0 · source§

### impl From<i8> for f64

1.5.0 · source§

### impl From<i8> for i16

1.5.0 · source§

### impl From<i8> for i32

1.5.0 · source§

### impl From<i8> for i64

1.26.0 · source§

### impl From<i8> for i128

1.5.0 · source§

### impl From<i8> for isize

1.34.0 · source§

### impl From<i8> for AtomicI8

1.6.0 · source§

### impl From<i16> for f32

1.6.0 · source§

### impl From<i16> for f64

1.5.0 · source§

### impl From<i16> for i32

1.5.0 · source§

### impl From<i16> for i64

1.26.0 · source§

### impl From<i16> for i128

1.26.0 · source§

### impl From<i16> for isize

1.34.0 · source§

### impl From<i16> for AtomicI16

1.6.0 · source§

### impl From<i32> for f64

1.5.0 · source§

### impl From<i32> for i64

1.26.0 · source§

### impl From<i32> for i128

1.34.0 · source§

### impl From<i32> for AtomicI32

1.26.0 · source§

### impl From<i64> for i128

1.34.0 · source§

### impl From<i64> for AtomicI64

1.23.0 · source§

### impl From<isize> for AtomicIsize

1.34.0 · source§

### impl From<!> for Infallible

source§

### impl From<!> for TryFromIntError

1.13.0 · source§

### impl From<u8> for char

Maps a byte in 0x00..=0xFF to a `char` whose code point has the same value, in U+0000..=U+00FF.

Unicode is designed such that this effectively decodes bytes with the character encoding that IANA calls ISO-8859-1. This encoding is compatible with ASCII.

Note that this is different from ISO/IEC 8859-1 a.k.a. ISO 8859-1 (with one less hyphen), which leaves some “blanks”, byte values that are not assigned to any character. ISO-8859-1 (the IANA one) assigns them to the C0 and C1 control codes.

Note that this is also different from Windows-1252 a.k.a. code page 1252, which is a superset ISO/IEC 8859-1 that assigns some (not all!) blanks to punctuation and various Latin characters.

To confuse things further, on the Web `ascii`, `iso-8859-1`, and `windows-1252` are all aliases for a superset of Windows-1252 that fills the remaining blanks with corresponding C0 and C1 control codes.

1.6.0 · source§

### impl From<u8> for f32

1.6.0 · source§

### impl From<u8> for f64

1.5.0 · source§

### impl From<u8> for i16

1.5.0 · source§

### impl From<u8> for i32

1.5.0 · source§

### impl From<u8> for i64

1.26.0 · source§

### impl From<u8> for i128

1.26.0 · source§

### impl From<u8> for isize

1.5.0 · source§

### impl From<u8> for u16

1.5.0 · source§

### impl From<u8> for u32

1.5.0 · source§

### impl From<u8> for u64

1.26.0 · source§

### impl From<u8> for u128

1.5.0 · source§

### impl From<u8> for usize

1.61.0 · source§

### impl From<u8> for ExitCode

1.34.0 · source§

### impl From<u8> for AtomicU8

1.6.0 · source§

### impl From<u16> for f32

1.6.0 · source§

### impl From<u16> for f64

1.5.0 · source§

### impl From<u16> for i32

1.5.0 · source§

### impl From<u16> for i64

1.26.0 · source§

### impl From<u16> for i128

1.5.0 · source§

### impl From<u16> for u32

1.5.0 · source§

### impl From<u16> for u64

1.26.0 · source§

### impl From<u16> for u128

1.26.0 · source§

### impl From<u16> for usize

1.34.0 · source§

### impl From<u16> for AtomicU16

1.6.0 · source§

### impl From<u32> for f64

1.5.0 · source§

### impl From<u32> for i64

1.26.0 · source§

### impl From<u32> for i128

1.5.0 · source§

### impl From<u32> for u64

1.26.0 · source§

### impl From<u32> for u128

1.1.0 · source§

### impl From<u32> for Ipv4Addr

1.34.0 · source§

### impl From<u32> for AtomicU32

1.26.0 · source§

### impl From<u64> for i128

1.26.0 · source§

### impl From<u64> for u128

1.34.0 · source§

### impl From<u64> for AtomicU64

1.26.0 · source§

### impl From<u128> for Ipv6Addr

1.23.0 · source§

### impl From<usize> for AtomicUsize

1.43.0 · source§

### impl From<Vec<NonZeroU8>> for CString

source§

### impl From<__m128> for Simd<f32, 4>

source§

### impl From<__m128d> for Simd<f64, 2>

source§

### impl From<__m128i> for Simd<i8, 16>

source§

### impl From<__m128i> for Simd<i16, 8>

source§

### impl From<__m128i> for Simd<i32, 4>

source§

### impl From<__m128i> for Simd<i64, 2>

source§

### impl From<__m128i> for Simd<isize, 2>

source§

### impl From<__m128i> for Simd<u8, 16>

source§

### impl From<__m128i> for Simd<u16, 8>

source§

### impl From<__m128i> for Simd<u32, 4>

source§

### impl From<__m128i> for Simd<u64, 2>

source§

### impl From<__m128i> for Simd<usize, 2>

source§

### impl From<__m256> for Simd<f32, 8>

source§

### impl From<__m256d> for Simd<f64, 4>

source§

### impl From<__m256i> for Simd<i8, 32>

source§

### impl From<__m256i> for Simd<i16, 16>

source§

### impl From<__m256i> for Simd<i32, 8>

source§

### impl From<__m256i> for Simd<i64, 4>

source§

### impl From<__m256i> for Simd<isize, 4>

source§

### impl From<__m256i> for Simd<u8, 32>

source§

### impl From<__m256i> for Simd<u16, 16>

source§

### impl From<__m256i> for Simd<u32, 8>

source§

### impl From<__m256i> for Simd<u64, 4>

source§

### impl From<__m256i> for Simd<usize, 4>

source§

### impl From<__m512> for Simd<f32, 16>

source§

### impl From<__m512d> for Simd<f64, 8>

source§

### impl From<__m512i> for Simd<i8, 64>

source§

### impl From<__m512i> for Simd<i16, 32>

source§

### impl From<__m512i> for Simd<i32, 16>

source§

### impl From<__m512i> for Simd<i64, 8>

source§

### impl From<__m512i> for Simd<isize, 8>

source§

### impl From<__m512i> for Simd<u8, 64>

source§

### impl From<__m512i> for Simd<u16, 32>

source§

### impl From<__m512i> for Simd<u32, 16>

source§

### impl From<__m512i> for Simd<u64, 8>

source§

### impl From<__m512i> for Simd<usize, 8>

source§

### impl From<LayoutError> for TryReserveErrorKind

1.18.0 · source§

### impl From<Box<str>> for String

1.18.0 · source§

### impl From<Box<CStr>> for CString

1.18.0 · source§

### impl From<Box<OsStr>> for OsString

1.18.0 · source§

### impl From<Box<Path>> for PathBuf

1.7.0 · source§

### impl From<CString> for Vec<u8>

1.20.0 · source§

### impl From<CString> for Box<CStr>

1.24.0 · source§

### impl From<CString> for Rc<CStr>

1.24.0 · source§

### impl From<CString> for Arc<CStr>

source§

### impl From<NulError> for Error

1.20.0 · source§

### impl From<OsString> for Box<OsStr>

source§

### impl From<OsString> for PathBuf

1.24.0 · source§

### impl From<OsString> for Rc<OsStr>

1.24.0 · source§

### impl From<OsString> for Arc<OsStr>

1.63.0 · source§

### impl From<File> for OwnedFd

1.63.0 · source§

### impl From<File> for OwnedHandle

Available on Windows only.
1.20.0 · source§

### impl From<File> for Stdio

1.74.0 · source§

### impl From<Stderr> for Stdio

1.74.0 · source§

### impl From<Stdout> for Stdio

1.16.0 · source§

### impl From<Ipv4Addr> for IpAddr

1.1.0 · source§

### impl From<Ipv4Addr> for u32

1.16.0 · source§

### impl From<Ipv6Addr> for IpAddr

1.26.0 · source§

### impl From<Ipv6Addr> for u128

1.16.0 · source§

### impl From<SocketAddrV4> for SocketAddr

1.16.0 · source§

### impl From<SocketAddrV6> for SocketAddr

1.63.0 · source§

### impl From<TcpListener> for OwnedFd

1.63.0 · source§

### impl From<TcpListener> for OwnedSocket

Available on Windows only.
1.63.0 · source§

### impl From<TcpStream> for OwnedFd

1.63.0 · source§

### impl From<TcpStream> for OwnedSocket

Available on Windows only.
1.63.0 · source§

### impl From<UdpSocket> for OwnedFd

1.63.0 · source§

### impl From<UdpSocket> for OwnedSocket

Available on Windows only.
1.31.0 · source§

### impl From<NonZeroI8> for i8

1.41.0 · source§

### impl From<NonZeroI8> for NonZeroI16

1.41.0 · source§

### impl From<NonZeroI8> for NonZeroI32

1.41.0 · source§

### impl From<NonZeroI8> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroI8> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroI8> for NonZeroIsize

1.31.0 · source§

### impl From<NonZeroI16> for i16

1.41.0 · source§

### impl From<NonZeroI16> for NonZeroI32

1.41.0 · source§

### impl From<NonZeroI16> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroI16> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroI16> for NonZeroIsize

1.31.0 · source§

### impl From<NonZeroI32> for i32

1.41.0 · source§

### impl From<NonZeroI32> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroI32> for NonZeroI128

1.31.0 · source§

### impl From<NonZeroI64> for i64

1.41.0 · source§

### impl From<NonZeroI64> for NonZeroI128

1.31.0 · source§

### impl From<NonZeroI128> for i128

1.31.0 · source§

### impl From<NonZeroIsize> for isize

1.31.0 · source§

### impl From<NonZeroU8> for u8

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroI16

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroI32

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroIsize

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroU16

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroU32

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroU64

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroU128

1.41.0 · source§

### impl From<NonZeroU8> for NonZeroUsize

1.31.0 · source§

### impl From<NonZeroU16> for u16

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroI32

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroU32

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroU64

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroU128

1.41.0 · source§

### impl From<NonZeroU16> for NonZeroUsize

1.31.0 · source§

### impl From<NonZeroU32> for u32

1.41.0 · source§

### impl From<NonZeroU32> for NonZeroI64

1.41.0 · source§

### impl From<NonZeroU32> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroU32> for NonZeroU64

1.41.0 · source§

### impl From<NonZeroU32> for NonZeroU128

1.31.0 · source§

### impl From<NonZeroU64> for u64

1.41.0 · source§

### impl From<NonZeroU64> for NonZeroI128

1.41.0 · source§

### impl From<NonZeroU64> for NonZeroU128

1.31.0 · source§

### impl From<NonZeroU128> for u128

1.31.0 · source§

### impl From<NonZeroUsize> for usize

1.63.0 · source§

### impl From<OwnedFd> for File

1.63.0 · source§

### impl From<OwnedFd> for TcpListener

1.63.0 · source§

### impl From<OwnedFd> for TcpStream

1.63.0 · source§

### impl From<OwnedFd> for UdpSocket

source§

### impl From<OwnedFd> for PidFd

Available on Linux only.
1.63.0 · source§

### impl From<OwnedFd> for UnixDatagram

Available on Unix only.
1.63.0 · source§

### impl From<OwnedFd> for UnixListener

Available on Unix only.
1.63.0 · source§

### impl From<OwnedFd> for UnixStream

Available on Unix only.
1.74.0 · source§

### impl From<OwnedFd> for ChildStderr

Available on Unix only.

Create a `ChildStderr` from the provided `OwnedFd`.

The provided file descriptor must point to a pipe with the `CLOEXEC` flag set.

1.74.0 · source§

### impl From<OwnedFd> for ChildStdin

Available on Unix only.

Create a `ChildStdin` from the provided `OwnedFd`.

The provided file descriptor must point to a pipe with the `CLOEXEC` flag set.

1.74.0 · source§

### impl From<OwnedFd> for ChildStdout

Available on Unix only.

Create a `ChildStdout` from the provided `OwnedFd`.

The provided file descriptor must point to a pipe with the `CLOEXEC` flag set.

1.63.0 · source§

### impl From<OwnedFd> for Stdio

Available on Unix only.
source§

### impl From<PidFd> for OwnedFd

Available on Linux only.
1.63.0 · source§

### impl From<UnixDatagram> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<UnixListener> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<UnixStream> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<OwnedHandle> for File

Available on Windows only.
1.74.0 · source§

### impl From<OwnedHandle> for ChildStderr

Available on Windows only.

Create a `ChildStderr` from the provided `OwnedHandle`.

The provided handle must be asynchronous, as reading and writing from and to it is implemented using asynchronous APIs.

1.74.0 · source§

### impl From<OwnedHandle> for ChildStdin

Available on Windows only.

Create a `ChildStdin` from the provided `OwnedHandle`.

The provided handle must be asynchronous, as reading and writing from and to it is implemented using asynchronous APIs.

1.74.0 · source§

### impl From<OwnedHandle> for ChildStdout

Available on Windows only.

Create a `ChildStdout` from the provided `OwnedHandle`.

The provided handle must be asynchronous, as reading and writing from and to it is implemented using asynchronous APIs.

1.63.0 · source§

### impl From<OwnedHandle> for Stdio

Available on Windows only.
1.63.0 · source§

### impl From<OwnedSocket> for TcpListener

Available on Windows only.
1.63.0 · source§

### impl From<OwnedSocket> for TcpStream

Available on Windows only.
1.63.0 · source§

### impl From<OwnedSocket> for UdpSocket

Available on Windows only.
1.20.0 · source§

### impl From<PathBuf> for Box<Path>

1.14.0 · source§

### impl From<PathBuf> for OsString

1.24.0 · source§

### impl From<PathBuf> for Rc<Path>

1.24.0 · source§

### impl From<PathBuf> for Arc<Path>

1.63.0 · source§

### impl From<Child> for OwnedHandle

Available on Windows only.
1.63.0 · source§

### impl From<ChildStderr> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<ChildStderr> for OwnedHandle

Available on Windows only.
1.20.0 · source§

### impl From<ChildStderr> for Stdio

1.63.0 · source§

### impl From<ChildStdin> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<ChildStdin> for OwnedHandle

Available on Windows only.
1.20.0 · source§

### impl From<ChildStdin> for Stdio

1.63.0 · source§

### impl From<ChildStdout> for OwnedFd

Available on Unix only.
1.63.0 · source§

### impl From<ChildStdout> for OwnedHandle

Available on Windows only.
1.20.0 · source§

### impl From<ChildStdout> for Stdio

source§

### impl From<ExitStatusError> for ExitStatus

source§

### impl From<Alignment> for usize

source§

### impl From<Alignment> for NonZeroUsize

1.62.0 · source§

### impl From<Rc<str>> for Rc<[u8]>

source§

### impl From<Simd<f32, 4>> for __m128

source§

### impl From<Simd<f32, 8>> for __m256

source§

### impl From<Simd<f32, 16>> for __m512

source§

### impl From<Simd<f64, 2>> for __m128d

source§

### impl From<Simd<f64, 4>> for __m256d

source§

### impl From<Simd<f64, 8>> for __m512d

source§

### impl From<Simd<i8, 16>> for __m128i

source§

### impl From<Simd<i8, 32>> for __m256i

source§

### impl From<Simd<i8, 64>> for __m512i

source§

### impl From<Simd<i16, 8>> for __m128i

source§

### impl From<Simd<i16, 16>> for __m256i

source§

### impl From<Simd<i16, 32>> for __m512i

source§

### impl From<Simd<i32, 4>> for __m128i

source§

### impl From<Simd<i32, 8>> for __m256i

source§

### impl From<Simd<i32, 16>> for __m512i

source§

### impl From<Simd<i64, 2>> for __m128i

source§

### impl From<Simd<i64, 4>> for __m256i

source§

### impl From<Simd<i64, 8>> for __m512i

source§

### impl From<Simd<isize, 2>> for __m128i

source§

### impl From<Simd<isize, 4>> for __m256i

source§

### impl From<Simd<isize, 8>> for __m512i

source§

### impl From<Simd<u8, 16>> for __m128i

source§

### impl From<Simd<u8, 32>> for __m256i

source§

### impl From<Simd<u8, 64>> for __m512i

source§

### impl From<Simd<u16, 8>> for __m128i

source§

### impl From<Simd<u16, 16>> for __m256i

source§

### impl From<Simd<u16, 32>> for __m512i

source§

### impl From<Simd<u32, 4>> for __m128i

source§

### impl From<Simd<u32, 8>> for __m256i

source§

### impl From<Simd<u32, 16>> for __m512i

source§

### impl From<Simd<u64, 2>> for __m128i

source§

### impl From<Simd<u64, 4>> for __m256i

source§

### impl From<Simd<u64, 8>> for __m512i

source§

### impl From<Simd<usize, 2>> for __m128i

source§

### impl From<Simd<usize, 4>> for __m256i

source§

### impl From<Simd<usize, 8>> for __m512i

1.14.0 · source§

### impl From<String> for Vec<u8>

1.20.0 · source§

### impl From<String> for Box<str>

source§

### impl From<String> for Box<dyn Error + Send + Sync>

1.6.0 · source§

### impl From<String> for Box<dyn Error>

source§

### impl From<String> for OsString

source§

### impl From<String> for PathBuf

1.21.0 · source§

### impl From<String> for Rc<str>

1.21.0 · source§

### impl From<String> for Arc<str>

1.24.0 · source§

### impl From<RecvError> for RecvTimeoutError

1.24.0 · source§

### impl From<RecvError> for TryRecvError

1.62.0 · source§

### impl From<Arc<str>> for Arc<[u8]>

1.17.0 · source§

### impl From<[u8; 4]> for IpAddr

1.9.0 · source§

### impl From<[u8; 4]> for Ipv4Addr

1.17.0 · source§

### impl From<[u8; 16]> for IpAddr

1.9.0 · source§

### impl From<[u8; 16]> for Ipv6Addr

1.17.0 · source§

### impl From<[u16; 8]> for IpAddr

1.16.0 · source§

### impl From<[u16; 8]> for Ipv6Addr

source§

### impl<'a> From<&'a str> for Cow<'a, str>

1.28.0 · source§

### impl<'a> From<&'a CStr> for Cow<'a, CStr>

1.28.0 · source§

### impl<'a> From<&'a CString> for Cow<'a, CStr>

1.28.0 · source§

### impl<'a> From<&'a OsStr> for Cow<'a, OsStr>

1.28.0 · source§

### impl<'a> From<&'a OsString> for Cow<'a, OsStr>

1.6.0 · source§

### impl<'a> From<&'a Path> for Cow<'a, Path>

1.28.0 · source§

### impl<'a> From<&'a PathBuf> for Cow<'a, Path>

1.28.0 · source§

### impl<'a> From<&'a String> for Cow<'a, str>

source§

### impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a>

1.22.0 · source§

### impl<'a> From<Cow<'a, str>> for Box<dyn Error>

1.14.0 · source§

### impl<'a> From<Cow<'a, str>> for String

1.28.0 · source§

### impl<'a> From<Cow<'a, CStr>> for CString

1.28.0 · source§

### impl<'a> From<Cow<'a, OsStr>> for OsString

1.28.0 · source§

### impl<'a> From<Cow<'a, Path>> for PathBuf

1.28.0 · source§

### impl<'a> From<CString> for Cow<'a, CStr>

1.28.0 · source§

### impl<'a> From<OsString> for Cow<'a, OsStr>

1.6.0 · source§

### impl<'a> From<PathBuf> for Cow<'a, Path>

source§

### impl<'a> From<String> for Cow<'a, str>

1.22.0 · source§

### impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Send + Sync + 'a>

1.45.0 · source§

### impl<'a, B> From<Cow<'a, B>> for Rc<B>where B: ToOwned + ?Sized, Rc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

1.45.0 · source§

### impl<'a, B> From<Cow<'a, B>> for Arc<B>where B: ToOwned + ?Sized, Arc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

source§

### impl<'a, E> From<E> for Box<dyn Error + 'a>where E: Error + 'a,

source§

### impl<'a, E> From<E> for Box<dyn Error + Send + Sync + 'a>where E: Error + Send + Sync + 'a,

1.30.0 · source§

### impl<'a, T> From<&'a Option<T>> for Option<&'a T>

1.8.0 · source§

### impl<'a, T> From<&'a [T]> for Cow<'a, [T]>where T: Clone,

1.28.0 · source§

### impl<'a, T> From<&'a Vec<T>> for Cow<'a, [T]>where T: Clone,

1.30.0 · source§

### impl<'a, T> From<&'a mut Option<T>> for Option<&'a mut T>

1.14.0 · source§

### impl<'a, T> From<Cow<'a, [T]>> for Vec<T>where [T]: ToOwned<Owned = Vec<T>>,

1.8.0 · source§

### impl<'a, T> From<Vec<T>> for Cow<'a, [T]>where T: Clone,

source§

### impl<'data> From<&'data mut [u8]> for BorrowedBuf<'data>

Create a new `BorrowedBuf` from a fully initialized slice.

source§

### impl<'data> From<&'data mut [MaybeUninit<u8>]> for BorrowedBuf<'data>

Create a new `BorrowedBuf` from an uninitialized buffer.

Use `set_init` if part of the buffer is known to be already initialized.

1.19.0 · source§

### impl<A> From<Box<str, A>> for Box<[u8], A>where A: Allocator,

source§

### impl<E> From<E> for Report<E>where E: Error,

1.17.0 · source§

### impl<I> From<(I, u16)> for SocketAddr where I: Into<IpAddr>,

1.56.0 · source§

### impl<K, V, const N: usize> From<[(K, V); N]> for HashMap<K, V, RandomState>where K: Eq + Hash,

1.56.0 · source§

### impl<K, V, const N: usize> From<[(K, V); N]> for BTreeMap<K, V>where K: Ord,

source§

### impl<T> From<&[T]> for Vec<T>where T: Clone,

1.17.0 · source§

### impl<T> From<&[T]> for Box<[T]>where T: Clone,

1.21.0 · source§

### impl<T> From<&[T]> for Rc<[T]>where T: Clone,

1.21.0 · source§

### impl<T> From<&[T]> for Arc<[T]>where T: Clone,

1.19.0 · source§

### impl<T> From<&mut [T]> for Vec<T>where T: Clone,

1.45.0 · source§

### impl<T> From<Cow<'_, [T]>> for Box<[T]>where T: Clone,

1.71.0 · source§

### impl<T> From<[T; 1]> for (T,)

1.71.0 · source§

### impl<T> From<[T; 2]> for (T, T)

1.71.0 · source§

### impl<T> From<[T; 3]> for (T, T, T)

1.71.0 · source§

### impl<T> From<[T; 4]> for (T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 5]> for (T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 6]> for (T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 7]> for (T, T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 8]> for (T, T, T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 9]> for (T, T, T, T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 10]> for (T, T, T, T, T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 11]> for (T, T, T, T, T, T, T, T, T, T, T)

1.71.0 · source§

### impl<T> From<[T; 12]> for (T, T, T, T, T, T, T, T, T, T, T, T)

1.34.0 · source§

### impl<T> From<!> for T

Stability note: This impl does not yet exist, but we are “reserving space” to add it in the future. See rust-lang/rust#64715 for details.

1.23.0 · source§

### impl<T> From<*mut T> for AtomicPtr<T>

1.25.0 · source§

### impl<T> From<&T> for NonNull<T>where T: ?Sized,

1.25.0 · source§

### impl<T> From<&mut T> for NonNull<T>where T: ?Sized,

1.71.0 · source§

### impl<T> From<(T, T)> for [T; 2]

1.71.0 · source§

### impl<T> From<(T, T, T)> for [T; 3]

1.71.0 · source§

### impl<T> From<(T, T, T, T)> for [T; 4]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T)> for [T; 5]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T)> for [T; 6]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T)> for [T; 7]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T, T)> for [T; 8]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T, T, T)> for [T; 9]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T, T, T, T)> for [T; 10]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T)> for [T; 11]

1.71.0 · source§

### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T, T)> for [T; 12]

1.71.0 · source§

### impl<T> From<(T,)> for [T; 1]

1.24.0 · source§

### impl<T> From<SendError<T>> for TrySendError<T>

source§

### impl<T> From<PoisonError<T>> for TryLockError<T>

1.63.0 · source§

### impl<T> From<JoinHandle<T>> for OwnedHandle

Available on Windows only.
1.12.0 · source§

### impl<T> From<T> for Option<T>

1.36.0 · source§

### impl<T> From<T> for Poll<T>

1.6.0 · source§

### impl<T> From<T> for Box<T>

1.12.0 · source§

### impl<T> From<T> for Cell<T>

1.70.0 · source§

### impl<T> From<T> for OnceCell<T>

1.12.0 · source§

### impl<T> From<T> for RefCell<T>

source§

### impl<T> From<T> for SyncUnsafeCell<T>

1.12.0 · source§

### impl<T> From<T> for UnsafeCell<T>

1.6.0 · source§

### impl<T> From<T> for Rc<T>

1.6.0 · source§

### impl<T> From<T> for Arc<T>

source§

### impl<T> From<T> for Exclusive<T>

1.24.0 · source§

### impl<T> From<T> for Mutex<T>

1.70.0 · source§

### impl<T> From<T> for OnceLock<T>

1.24.0 · source§

### impl<T> From<T> for RwLock<T>

source§

### impl<T> From<T> for T

1.20.0 · source§

### impl<T, A> From<Vec<T, A>> for Box<[T], A>where A: Allocator,

1.5.0 · source§

### impl<T, A> From<Vec<T, A>> for BinaryHeap<T, A>where T: Ord, A: Allocator,

1.10.0 · source§

### impl<T, A> From<Vec<T, A>> for VecDeque<T, A>where A: Allocator,

1.21.0 · source§

### impl<T, A> From<Vec<T, A>> for Rc<[T], A>where A: Allocator,

1.21.0 · source§

### impl<T, A> From<Vec<T, A>> for Arc<[T], A>where A: Allocator + Clone,

1.18.0 · source§

### impl<T, A> From<Box<[T], A>> for Vec<T, A>where A: Allocator,

1.33.0 · source§

### impl<T, A> From<Box<T, A>> for Pin<Box<T, A>>where A: Allocator + 'static, T: ?Sized,

1.21.0 · source§

### impl<T, A> From<Box<T, A>> for Rc<T, A>where A: Allocator, T: ?Sized,

1.21.0 · source§

### impl<T, A> From<Box<T, A>> for Arc<T, A>where A: Allocator, T: ?Sized,

1.5.0 · source§

### impl<T, A> From<BinaryHeap<T, A>> for Vec<T, A>where A: Allocator,

1.10.0 · source§

### impl<T, A> From<VecDeque<T, A>> for Vec<T, A>where A: Allocator,

source§

### impl<T, const LANES: usize> From<Mask<T, LANES>> for [bool; LANES]where T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

source§

### impl<T, const LANES: usize> From<Mask<T, LANES>> for Simd<T, LANES>where T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

source§

### impl<T, const LANES: usize> From<[bool; LANES]> for Mask<T, LANES>where T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

1.74.0 · source§

### impl<T, const N: usize> From<&[T; N]> for Vec<T>where T: Clone,

1.74.0 · source§

### impl<T, const N: usize> From<&mut [T; N]> for Vec<T>where T: Clone,

1.44.0 · source§

### impl<T, const N: usize> From<[T; N]> for Vec<T>

1.45.0 · source§

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

1.56.0 · source§

### impl<T, const N: usize> From<[T; N]> for HashSet<T, RandomState>where T: Eq + Hash,

1.56.0 · source§

### impl<T, const N: usize> From<[T; N]> for BTreeSet<T>where T: Ord,

1.56.0 · source§

### impl<T, const N: usize> From<[T; N]> for BinaryHeap<T>where T: Ord,

1.56.0 · source§

### impl<T, const N: usize> From<[T; N]> for LinkedList<T>

1.56.0 · source§

### impl<T, const N: usize> From<[T; N]> for VecDeque<T>

1.74.0 · source§

### impl<T, const N: usize> From<[T; N]> for Rc<[T]>

source§

### impl<T, const N: usize> From<[T; N]> for Simd<T, N>where LaneCount<N>: SupportedLaneCount, T: SimdElement,

1.74.0 · source§

### impl<T, const N: usize> From<[T; N]> for Arc<[T]>

source§

### impl<T, const N: usize> From<Simd<T, N>> for [T; N]where LaneCount<N>: SupportedLaneCount, T: SimdElement,

source§

### impl<T: ?Sized + AsRef<OsStr>> From<&T> for OsString

source§

### impl<T: ?Sized + AsRef<OsStr>> From<&T> for PathBuf

source§

### impl<W> From<IntoInnerError<W>> for Error

1.51.0 · source§

### impl<W> From<Arc<W>> for RawWaker where W: Wake + Send + Sync + 'static,

1.51.0 · source§

### impl<W> From<Arc<W>> for Waker where W: Wake + Send + Sync + 'static,

source§

### impl<const LANES: usize> From<Mask<i8, LANES>> for Mask<i16, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i8, LANES>> for Mask<i32, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i8, LANES>> for Mask<i64, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i8, LANES>> for Mask<isize, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i16, LANES>> for Mask<i8, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i16, LANES>> for Mask<i32, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i16, LANES>> for Mask<i64, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i16, LANES>> for Mask<isize, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i32, LANES>> for Mask<i8, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i32, LANES>> for Mask<i16, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i32, LANES>> for Mask<i64, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i32, LANES>> for Mask<isize, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i64, LANES>> for Mask<i8, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i64, LANES>> for Mask<i16, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i64, LANES>> for Mask<i32, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<i64, LANES>> for Mask<isize, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<isize, LANES>> for Mask<i8, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<isize, LANES>> for Mask<i16, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<isize, LANES>> for Mask<i32, LANES>where LaneCount<LANES>: SupportedLaneCount,

source§

### impl<const LANES: usize> From<Mask<isize, LANES>> for Mask<i64, LANES>where LaneCount<LANES>: SupportedLaneCount,