Trait otter_api_tests::shapelib::FromStr 1.0.0[−][src]
Expand description
Parse a value from a string
FromStr’s from_str method is often used implicitly, through
str’s parse method. See parse’s documentation for examples.
FromStr does not have a lifetime parameter, and so you can only parse types
that do not contain a lifetime parameter themselves. In other words, you can
parse an i32 with FromStr, but not a &i32. You can parse a struct that
contains an i32, but not one that contains an &i32.
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
Required methods
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);
Implementations on Foreign Types
type Err = AddrParseErrortype Err = AddrParseErrortype Err = AddrParseErrortype Err = AddrParseErrortype Err = AddrParseErrortype Err = AddrParseErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrorConverts a string in base 10 to a float. Accepts an optional decimal exponent.
This function accepts strings such as
- ‘3.14’
- ‘-3.14’
- ‘2.5E10’, or equivalently, ‘2.5e10’
- ‘2.5E-10’
- ‘5.’
- ‘.5’, or, equivalently, ‘0.5’
- ‘inf’, ‘-inf’, ‘NaN’
Leading and trailing whitespace represent an error.
Grammar
All strings that adhere to the following EBNF grammar
will result in an Ok being returned:
Float ::= Sign? ( 'inf' | 'NaN' | Number )
Number ::= ( Digit+ |
Digit+ '.' Digit* |
Digit* '.' Digit+ ) Exp?
Exp ::= [eE] Sign? Digit+
Sign ::= [+-]
Digit ::= [0-9]Arguments
- src - A string
Return value
Err(ParseFloatError) if the string did not represent a valid
number. Otherwise, Ok(n) where n is the floating-point
number represented by src.
type Err = ParseFloatErrortype Err = ParseIntErrorParse a bool from a string.
Yields a Result<bool, ParseBoolError>, because s may or may not
actually be parseable.
Examples
use std::str::FromStr; assert_eq!(FromStr::from_str("true"), Ok(true)); assert_eq!(FromStr::from_str("false"), Ok(false)); assert!(<bool as FromStr>::from_str("not even a boolean").is_err());
Note, in many cases, the .parse() method on str is more proper.
assert_eq!("true".parse(), Ok(true)); assert_eq!("false".parse(), Ok(false)); assert!("not even a boolean".parse::<bool>().is_err());
type Err = ParseBoolErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrortype Err = ParseIntErrorConverts a string in base 10 to a float. Accepts an optional decimal exponent.
This function accepts strings such as
- ‘3.14’
- ‘-3.14’
- ‘2.5E10’, or equivalently, ‘2.5e10’
- ‘2.5E-10’
- ‘5.’
- ‘.5’, or, equivalently, ‘0.5’
- ‘inf’, ‘-inf’, ‘NaN’
Leading and trailing whitespace represent an error.
Grammar
All strings that adhere to the following EBNF grammar
will result in an Ok being returned:
Float ::= Sign? ( 'inf' | 'NaN' | Number )
Number ::= ( Digit+ |
Digit+ '.' Digit* |
Digit* '.' Digit+ ) Exp?
Exp ::= [eE] Sign? Digit+
Sign ::= [+-]
Digit ::= [0-9]Arguments
- src - A string
Return value
Err(ParseFloatError) if the string did not represent a valid
number. Otherwise, Ok(n) where n is the floating-point
number represented by src.
type Err = ParseFloatErrorimpl FromStr for PublicKey
impl FromStr for PublicKeyimpl FromStr for Color
impl FromStr for Colorimpl FromStr for WordBreak
impl FromStr for WordBreakimpl FromStr for GraphemeClusterBreak
impl FromStr for GraphemeClusterBreakimpl FromStr for SentenceBreak
impl FromStr for SentenceBreakimpl FromStr for Glob
impl FromStr for Globtype Err = ParseRatioErrortype Err = InvalidUritype Err = InvalidUritype Err = InvalidHeaderValuetype Err = InvalidUritype Err = InvalidHeaderNametype Err = InvalidStatusCodeimpl FromStr for Name
impl FromStr for Nametype Err = ParseLevelErrortype Err = ParseLevelFilterErrortype Err = AddrParseErrortype Err = AddrParseErrortype Err = AddrParseErrorimpl<A> FromStr for Tendril<UTF8, A> where
A: Atomicity,
impl<A> FromStr for Tendril<UTF8, A> where
A: Atomicity, Implementors
impl<T> FromStr for OrderedFloat<T> where
T: FromStr,