# Trait std::convert::From 1.0.0 [−] [src]

    pub trait From<T> {
        fn from(T) -> Self;
    }

Construct `Self` via a conversion.

Note: this trait must not fail. If the conversion can fail, use `TryFrom` or a dedicated method which returns an `Option<T>` or a `Result<T, E>`.

# Examples

`String` implements `From<&str>`:

fn main() { let string = "hello".to_string(); let other_string = String::from("hello"); assert_eq!(string, other_string); }

    let string = "hello".to_string();
    let other_string = String::from("hello");

    assert_eq!(string, other_string);

# Generic impls

- `From<T> for U` implies `Into<U> for T`
- `from()` is reflexive, which means that `From<T> for T` is implemented

## Required Methods

### `fn from(T) -> Self`

Performs the conversion.

## Implementors

- `impl From<u8> for u16`
- `impl From<u8> for u32`
- `impl From<u8> for u64`
- `impl From<u8> for usize`
- `impl From<u16> for u32`
- `impl From<u16> for u64`
- `impl From<u32> for u64`
- `impl From<i8> for i16`
- `impl From<i8> for i32`
- `impl From<i8> for i64`
- `impl From<i8> for isize`
- `impl From<i16> for i32`
- `impl From<i16> for i64`
- `impl From<i32> for i64`
- `impl From<u8> for i16`
- `impl From<u8> for i32`
- `impl From<u8> for i64`
- `impl From<u16> for i32`
- `impl From<u16> for i64`
- `impl From<u32> for i64`
- `impl From<i8> for f32`
- `impl From<i8> for f64`
- `impl From<i16> for f32`
- `impl From<i16> for f64`
- `impl From<i32> for f64`
- `impl From<u8> for f32`
- `impl From<u8> for f64`
- `impl From<u16> for f32`
- `impl From<u16> for f64`
- `impl From<u32> for f64`
- `impl From<f32> for f64`
- `impl<Idx> From<Range<Idx>> for RangeInclusive<Idx> where Idx: One + Sub<Idx, Output=Idx> + PartialOrd<Idx>`
- `impl<T> From<T> for T`
- `impl<T> From<T> for Box<T>`
- `impl<T> From<T> for Arc<T>`
- `impl<T> From<T> for Rc<T>`
- `impl<T> From<Vec<T>> for BinaryHeap<T> where T: Ord`
- `impl<T> From<BinaryHeap<T>> for Vec<T>`
- `impl<'a> From<&'a str> for String`
- `impl<'a> From<&'a str> for Cow<'a, str>`
- `impl<'a> From<String> for Cow<'a, str>`
- `impl<'a, T> From<&'a [T]> for Vec<T> where T: Clone`
- `impl<'a> From<&'a str> for Vec<u8>`
- `impl<'a, T> From<&'a [T]> for Cow<'a, [T]> where T: Clone`
- `impl<'a, T> From<Vec<T>> for Cow<'a, [T]> where T: Clone`
- `impl<T> From<Vec<T>> for VecDeque<T>`
- `impl<T> From<VecDeque<T>> for Vec<T>`
- `impl<'a, E: Error + 'a> From<E> for Box<Error + 'a>`
- `impl<'a, E: Error + Send + Sync + 'a> From<E> for Box<Error + Send + Sync + 'a>`
- `impl From<String> for Box<Error + Send + Sync>`
- `impl From<String> for Box<Error>`
- `impl<'a, 'b> From<&'b str> for Box<Error + Send + Sync + 'a>`
- `impl<'a> From<&'a str> for Box<Error>`
- `impl From<CString> for Vec<u8>`
- `impl From<NulError> for Error`
- `impl<'a> From<&'a CStr> for CString`
- `impl From<String> for OsString`
- `impl<'a, T: ?Sized + AsRef<OsStr>> From<&'a T> for OsString`
- `impl<W> From<IntoInnerError<W>> for Error`
- `impl From<Ipv4Addr> for u32`
- `impl From<u32> for Ipv4Addr`
- `impl From<[u8; 4]> for Ipv4Addr`
- `impl From<[u8; 16]> for Ipv6Addr`
- `impl<'a, T: ?Sized + AsRef<OsStr>> From<&'a T> for PathBuf`
- `impl From<OsString> for PathBuf`
- `impl From<String> for PathBuf`
- `impl<'a> From<&'a Path> for Cow<'a, Path>`
- `impl<'a> From<PathBuf> for Cow<'a, Path>`
- `impl<T> From<PoisonError<T>> for TryLockError<T>`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)