Trait core::str::FromStr 1.0.0
[−]
[src]
pub trait FromStr: Sized {
type Err;
fn from_str(s: &str) -> Result<Self, Self::Err>;
}A trait to abstract the idea of creating a new instance of a type from a string.
FromStr's from_str method is often used implicitly, through
str's parse method. See parse's documentation for examples.
Examples
Basic implementation of FromStr on an example Point type:
use std::str::FromStr; use std::num::ParseIntError; #[derive(Debug, PartialEq)] struct Point { x: i32, y: i32 } impl FromStr for Point { type Err = ParseIntError; fn from_str(s: &str) -> Result<Self, Self::Err> { let coords: Vec<&str> = s.trim_matches(|p| p == '(' || p == ')' ) .split(",") .collect(); let x_fromstr = coords[0].parse::<i32>()?; let y_fromstr = coords[1].parse::<i32>()?; Ok(Point { x: x_fromstr, y: y_fromstr }) } } let p = Point::from_str("(1,2)"); assert_eq!(p.unwrap(), Point{ x: 1, y: 2} )Run
Associated Types
type Err
The associated error which can be returned from parsing.
Required Methods
fn from_str(s: &str) -> Result<Self, Self::Err>
Parses a string s to return a value of this type.
If parsing succeeds, return the value inside Ok, otherwise
when the string is ill-formatted return an error specific to the
inside Err. The error type is specific to implementation of the trait.
Examples
Basic usage with i32, a type that implements FromStr:
use std::str::FromStr; let s = "5"; let x = i32::from_str(s).unwrap(); assert_eq!(5, x);Run
Implementors
impl FromStr for f32 type Err = ParseFloatError;impl FromStr for f64 type Err = ParseFloatError;impl FromStr for isize type Err = ParseIntError;impl FromStr for i8 type Err = ParseIntError;impl FromStr for i16 type Err = ParseIntError;impl FromStr for i32 type Err = ParseIntError;impl FromStr for i64 type Err = ParseIntError;impl FromStr for i128 type Err = ParseIntError;impl FromStr for usize type Err = ParseIntError;impl FromStr for u8 type Err = ParseIntError;impl FromStr for u16 type Err = ParseIntError;impl FromStr for u32 type Err = ParseIntError;impl FromStr for u64 type Err = ParseIntError;impl FromStr for u128 type Err = ParseIntError;impl FromStr for char type Err = ParseCharError;impl FromStr for bool type Err = ParseBoolError;