Trait collections::str::FromStr 1.0.0
[−]
[src]
pub trait FromStr {
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} )
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);
Implementors
impl FromStr for Stringimpl FromStr for i64impl FromStr for f64impl FromStr for u32impl FromStr for i16impl FromStr for i128impl FromStr for u16impl FromStr for isizeimpl FromStr for i32impl FromStr for charimpl FromStr for u64impl FromStr for u8impl FromStr for f32impl FromStr for u128impl FromStr for boolimpl FromStr for i8impl FromStr for usize