Trait std::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} )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 i64impl FromStr for i8impl FromStr for i32impl FromStr for f64impl FromStr for u8impl FromStr for f32impl FromStr for u32impl FromStr for boolimpl FromStr for u16impl FromStr for usizeimpl FromStr for i128impl FromStr for i16impl FromStr for isizeimpl FromStr for u128impl FromStr for charimpl FromStr for u64impl FromStr for Stringimpl FromStr for IpAddrimpl FromStr for Ipv4Addrimpl FromStr for Ipv6Addrimpl FromStr for SocketAddrV4impl FromStr for SocketAddrV6impl FromStr for SocketAddr