Trait otter_api_tests::shapelib::FromStr
1.0.0 · source · [−]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 the 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
1.5.0 · sourceimpl FromStr for SocketAddrV6
impl FromStr for SocketAddrV6
type Err = AddrParseError
fn from_str(s: &str) -> Result<SocketAddrV6, AddrParseError>
1.5.0 · sourceimpl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
type Err = AddrParseError
fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>
sourceimpl FromStr for i64
impl FromStr for i64
type Err = ParseIntError
fn from_str(src: &str) -> Result<i64, ParseIntError>
sourceimpl FromStr for u16
impl FromStr for u16
type Err = ParseIntError
fn from_str(src: &str) -> Result<u16, ParseIntError>
sourceimpl FromStr for u8
impl FromStr for u8
type Err = ParseIntError
fn from_str(src: &str) -> Result<u8, ParseIntError>
sourceimpl FromStr for u64
impl FromStr for u64
type Err = ParseIntError
fn from_str(src: &str) -> Result<u64, ParseIntError>
sourceimpl FromStr for isize
impl FromStr for isize
type Err = ParseIntError
fn from_str(src: &str) -> Result<isize, ParseIntError>
sourceimpl FromStr for bool
impl FromStr for bool
sourcefn from_str(s: &str) -> Result<bool, ParseBoolError>
fn from_str(s: &str) -> Result<bool, ParseBoolError>
Parse 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 = ParseBoolError
sourceimpl FromStr for f32
impl FromStr for f32
sourcefn from_str(src: &str) -> Result<f32, ParseFloatError>
fn from_str(src: &str) -> Result<f32, ParseFloatError>
Converts 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’, ‘+infinity’, ‘NaN’
Note that alphabetical characters are not case-sensitive.
Leading and trailing whitespace represent an error.
Grammar
All strings that adhere to the following EBNF grammar when
lowercased will result in an Ok
being returned:
Float ::= Sign? ( 'inf' | 'infinity' | 'nan' | Number )
Number ::= ( Digit+ |
'.' Digit* |
Digit+ '.' Digit* |
Digit* '.' Digit+ ) Exp?
Exp ::= 'e' 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 = ParseFloatError
sourceimpl FromStr for usize
impl FromStr for usize
type Err = ParseIntError
fn from_str(src: &str) -> Result<usize, ParseIntError>
sourceimpl FromStr for u128
impl FromStr for u128
type Err = ParseIntError
fn from_str(src: &str) -> Result<u128, ParseIntError>
sourceimpl FromStr for u32
impl FromStr for u32
type Err = ParseIntError
fn from_str(src: &str) -> Result<u32, ParseIntError>
sourceimpl FromStr for i128
impl FromStr for i128
type Err = ParseIntError
fn from_str(src: &str) -> Result<i128, ParseIntError>
sourceimpl FromStr for i16
impl FromStr for i16
type Err = ParseIntError
fn from_str(src: &str) -> Result<i16, ParseIntError>
sourceimpl FromStr for i32
impl FromStr for i32
type Err = ParseIntError
fn from_str(src: &str) -> Result<i32, ParseIntError>
sourceimpl FromStr for f64
impl FromStr for f64
sourcefn from_str(src: &str) -> Result<f64, ParseFloatError>
fn from_str(src: &str) -> Result<f64, ParseFloatError>
Converts 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’, ‘+infinity’, ‘NaN’
Note that alphabetical characters are not case-sensitive.
Leading and trailing whitespace represent an error.
Grammar
All strings that adhere to the following EBNF grammar when
lowercased will result in an Ok
being returned:
Float ::= Sign? ( 'inf' | 'infinity' | 'nan' | Number )
Number ::= ( Digit+ |
'.' Digit* |
Digit+ '.' Digit* |
Digit* '.' Digit+ ) Exp?
Exp ::= 'e' 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 = ParseFloatError
sourceimpl FromStr for i8
impl FromStr for i8
type Err = ParseIntError
fn from_str(src: &str) -> Result<i8, ParseIntError>
impl FromStr for PublicKey
impl FromStr for PublicKey
impl FromStr for Color
impl FromStr for Color
impl FromStr for Weekday
impl FromStr for Weekday
impl FromStr for Month
impl FromStr for Month
impl FromStr for SentenceBreak
impl FromStr for SentenceBreak
impl FromStr for WordBreak
impl FromStr for WordBreak
impl FromStr for GraphemeClusterBreak
impl FromStr for GraphemeClusterBreak
impl FromStr for Glob
impl FromStr for Glob
sourceimpl FromStr for ParamsString
impl FromStr for ParamsString
sourceimpl FromStr for BigInt
impl FromStr for BigInt
type Err = ParseBigIntError
fn from_str(s: &str) -> Result<BigInt, ParseBigIntError>
sourceimpl FromStr for BigUint
impl FromStr for BigUint
type Err = ParseBigIntError
fn from_str(s: &str) -> Result<BigUint, ParseBigIntError>
sourceimpl FromStr for ArgSettings
impl FromStr for ArgSettings
type Err = String
fn from_str(s: &str) -> Result<ArgSettings, <ArgSettings as FromStr>::Err>
sourceimpl FromStr for AppSettings
impl FromStr for AppSettings
type Err = String
fn from_str(s: &str) -> Result<AppSettings, <AppSettings as FromStr>::Err>
sourceimpl FromStr for PathAndQuery
impl FromStr for PathAndQuery
type Err = InvalidUri
fn from_str(s: &str) -> Result<PathAndQuery, InvalidUri>
sourceimpl FromStr for Uri
impl FromStr for Uri
type Err = InvalidUri
fn from_str(s: &str) -> Result<Uri, InvalidUri>
sourceimpl FromStr for HeaderValue
impl FromStr for HeaderValue
type Err = InvalidHeaderValue
fn from_str(s: &str) -> Result<HeaderValue, <HeaderValue as FromStr>::Err>
sourceimpl FromStr for StatusCode
impl FromStr for StatusCode
type Err = InvalidStatusCode
fn from_str(s: &str) -> Result<StatusCode, InvalidStatusCode>
sourceimpl FromStr for Authority
impl FromStr for Authority
type Err = InvalidUri
fn from_str(s: &str) -> Result<Authority, InvalidUri>
sourceimpl FromStr for HeaderName
impl FromStr for HeaderName
type Err = InvalidHeaderName
fn from_str(s: &str) -> Result<HeaderName, InvalidHeaderName>
impl FromStr for Name
impl FromStr for Name
sourceimpl FromStr for LevelFilter
impl FromStr for LevelFilter
type Err = ParseLevelFilterError
fn from_str(from: &str) -> Result<LevelFilter, <LevelFilter as FromStr>::Err>
sourceimpl FromStr for Level
impl FromStr for Level
type Err = ParseLevelError
fn from_str(s: &str) -> Result<Level, ParseLevelError>
sourceimpl FromStr for Ipv4Net
impl FromStr for Ipv4Net
type Err = AddrParseError
fn from_str(s: &str) -> Result<Ipv4Net, AddrParseError>
sourceimpl FromStr for IpNet
impl FromStr for IpNet
type Err = AddrParseError
fn from_str(s: &str) -> Result<IpNet, AddrParseError>
sourceimpl FromStr for Ipv6Net
impl FromStr for Ipv6Net
type Err = AddrParseError
fn from_str(s: &str) -> Result<Ipv6Net, AddrParseError>
Implementors
sourceimpl FromStr for Kind
impl FromStr for Kind
type Err = ParseError
sourceimpl FromStr for AccountScope
impl FromStr for AccountScope
type Err = InvalidScopedName
sourceimpl FromStr for LinkKind
impl FromStr for LinkKind
type Err = ParseError
sourceimpl FromStr for PresentationLayout
impl FromStr for PresentationLayout
type Err = ParseError
sourceimpl FromStr for otter_api_tests::flexi_logger::Level
impl FromStr for otter_api_tests::flexi_logger::Level
type Err = ParseLevelError
sourceimpl FromStr for otter_api_tests::flexi_logger::LevelFilter
impl FromStr for otter_api_tests::flexi_logger::LevelFilter
type Err = ParseLevelError
sourceimpl FromStr for otter_api_tests::imports::chrono::Month
impl FromStr for otter_api_tests::imports::chrono::Month
Parsing a str
into a Month
uses the format %W
.
Example
use chrono::Month;
assert_eq!("January".parse::<Month>(), Ok(Month::January));
assert!("any day".parse::<Month>().is_err());
The parsing is case-insensitive.
assert_eq!("fEbruARy".parse::<Month>(), Ok(Month::February));
Only the shortest form (e.g. jan
) and the longest form (e.g. january
) is accepted.
assert!("septem".parse::<Month>().is_err());
assert!("Augustin".parse::<Month>().is_err());
type Err = ParseMonthError
sourceimpl FromStr for otter_api_tests::imports::chrono::Weekday
impl FromStr for otter_api_tests::imports::chrono::Weekday
Parsing a str
into a Weekday
uses the format %W
.
Example
use chrono::Weekday;
assert_eq!("Sunday".parse::<Weekday>(), Ok(Weekday::Sun));
assert!("any day".parse::<Weekday>().is_err());
The parsing is case-insensitive.
assert_eq!("mON".parse::<Weekday>(), Ok(Weekday::Mon));
Only the shortest form (e.g. sun
) and the longest form (e.g. sunday
) is accepted.
assert!("thurs".parse::<Weekday>().is_err());
type Err = ParseWeekdayError
1.7.0 · sourceimpl FromStr for IpAddr
impl FromStr for IpAddr
type Err = AddrParseError
sourceimpl FromStr for SocketAddr
impl FromStr for SocketAddr
type Err = AddrParseError
sourceimpl FromStr for Index
impl FromStr for Index
type Err = ParseIntError
sourceimpl FromStr for DateTime<FixedOffset>
impl FromStr for DateTime<FixedOffset>
type Err = ParseError
sourceimpl FromStr for NaiveDate
impl FromStr for NaiveDate
Parsing a str
into a NaiveDate
uses the same format,
%Y-%m-%d
, as in Debug
and Display
.
Example
use chrono::NaiveDate;
let d = NaiveDate::from_ymd(2015, 9, 18);
assert_eq!("2015-09-18".parse::<NaiveDate>(), Ok(d));
let d = NaiveDate::from_ymd(12345, 6, 7);
assert_eq!("+12345-6-7".parse::<NaiveDate>(), Ok(d));
assert!("foo".parse::<NaiveDate>().is_err());
type Err = ParseError
sourceimpl FromStr for NaiveDateTime
impl FromStr for NaiveDateTime
Parsing a str
into a NaiveDateTime
uses the same format,
%Y-%m-%dT%H:%M:%S%.f
, as in Debug
.
Example
use chrono::{NaiveDateTime, NaiveDate};
let dt = NaiveDate::from_ymd(2015, 9, 18).and_hms(23, 56, 4);
assert_eq!("2015-09-18T23:56:04".parse::<NaiveDateTime>(), Ok(dt));
let dt = NaiveDate::from_ymd(12345, 6, 7).and_hms_milli(7, 59, 59, 1_500); // leap second
assert_eq!("+12345-6-7T7:59:60.5".parse::<NaiveDateTime>(), Ok(dt));
assert!("foo".parse::<NaiveDateTime>().is_err());
type Err = ParseError
sourceimpl FromStr for NaiveTime
impl FromStr for NaiveTime
Parsing a str
into a NaiveTime
uses the same format,
%H:%M:%S%.f
, as in Debug
and Display
.
Example
use chrono::NaiveTime;
let t = NaiveTime::from_hms(23, 56, 4);
assert_eq!("23:56:04".parse::<NaiveTime>(), Ok(t));
let t = NaiveTime::from_hms_nano(23, 56, 4, 12_345_678);
assert_eq!("23:56:4.012345678".parse::<NaiveTime>(), Ok(t));
let t = NaiveTime::from_hms_nano(23, 59, 59, 1_234_567_890); // leap second
assert_eq!("23:59:60.23456789".parse::<NaiveTime>(), Ok(t));
assert!("foo".parse::<NaiveTime>().is_err());
type Err = ParseError
sourceimpl FromStr for Pattern
impl FromStr for Pattern
type Err = PatternError
1.35.0 · sourceimpl FromStr for NonZeroI8
impl FromStr for NonZeroI8
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroI16
impl FromStr for NonZeroI16
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroI32
impl FromStr for NonZeroI32
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroI64
impl FromStr for NonZeroI64
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroI128
impl FromStr for NonZeroI128
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroIsize
impl FromStr for NonZeroIsize
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroU8
impl FromStr for NonZeroU8
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroU16
impl FromStr for NonZeroU16
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroU32
impl FromStr for NonZeroU32
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroU64
impl FromStr for NonZeroU64
type Err = ParseIntError
1.35.0 · sourceimpl FromStr for NonZeroU128
impl FromStr for NonZeroU128
type Err = ParseIntError
sourceimpl FromStr for Datetime
impl FromStr for Datetime
type Err = DatetimeParseError
sourceimpl FromStr for AbbrevPresentationLayout
impl FromStr for AbbrevPresentationLayout
sourceimpl FromStr for AccountName
impl FromStr for AccountName
type Err = InvalidScopedName
sourceimpl FromStr for AssetUrlToken
impl FromStr for AssetUrlToken
type Err = BadAssetUrlToken
sourceimpl FromStr for InstanceName
impl FromStr for InstanceName
type Err = InvalidScopedName
impl FromStr for Mutable
impl FromStr for Mutable
type Err = ParseError
sourceimpl FromStr for Ipv4Addr
impl FromStr for Ipv4Addr
type Err = AddrParseError
sourceimpl FromStr for Ipv6Addr
impl FromStr for Ipv6Addr
type Err = AddrParseError
1.35.0 · sourceimpl FromStr for NonZeroUsize
impl FromStr for NonZeroUsize
type Err = ParseIntError
1.32.0 · sourceimpl FromStr for PathBuf
impl FromStr for PathBuf
type Err = Infallible
sourceimpl FromStr for Url
impl FromStr for Url
Parse a string as an URL, without a base URL or encoding override.