Trait otter_nodejs_tests::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 expected = Ok(Point { x: 1, y: 2 });
// Explicit call
assert_eq!(Point::from_str("(1,2)"), expected);
// Implicit calls, through parse
assert_eq!("(1,2)".parse(), expected);
assert_eq!("(1,2)".parse::<Point>(), expected);
Required 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);
Implementors
sourceimpl FromStr for AccountScope
impl FromStr for AccountScope
type Err = InvalidScopedName
1.7.0 · sourceimpl FromStr for IpAddr
impl FromStr for IpAddr
type Err = AddrParseError
sourceimpl FromStr for PresentationLayout
impl FromStr for PresentationLayout
type Err = ParseError
sourceimpl FromStr for SocketAddr
impl FromStr for SocketAddr
type Err = AddrParseError
sourceimpl FromStr for AppSettings
impl FromStr for AppSettings
sourceimpl FromStr for ArgSettings
impl FromStr for ArgSettings
sourceimpl FromStr for IpNet
impl FromStr for IpNet
type Err = AddrParseError
sourceimpl FromStr for otter_nodejs_tests::otter_support::crates::chrono::Month
impl FromStr for otter_nodejs_tests::otter_support::crates::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_nodejs_tests::otter_support::crates::chrono::Weekday
impl FromStr for otter_nodejs_tests::otter_support::crates::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
sourceimpl FromStr for otter_nodejs_tests::otter_support::crates::log::Level
impl FromStr for otter_nodejs_tests::otter_support::crates::log::Level
type Err = ParseLevelError
sourceimpl FromStr for otter_nodejs_tests::otter_support::crates::log::LevelFilter
impl FromStr for otter_nodejs_tests::otter_support::crates::log::LevelFilter
type Err = ParseLevelError
sourceimpl FromStr for bool
impl FromStr for bool
type Err = ParseBoolError
1.20.0 · sourceimpl FromStr for char
impl FromStr for char
type Err = ParseCharError
sourceimpl FromStr for f32
impl FromStr for f32
type Err = ParseFloatError
sourceimpl FromStr for f64
impl FromStr for f64
type Err = ParseFloatError
sourceimpl FromStr for i8
impl FromStr for i8
type Err = ParseIntError
sourceimpl FromStr for i16
impl FromStr for i16
type Err = ParseIntError
sourceimpl FromStr for i32
impl FromStr for i32
type Err = ParseIntError
sourceimpl FromStr for i64
impl FromStr for i64
type Err = ParseIntError
sourceimpl FromStr for i128
impl FromStr for i128
type Err = ParseIntError
sourceimpl FromStr for isize
impl FromStr for isize
type Err = ParseIntError
sourceimpl FromStr for u8
impl FromStr for u8
type Err = ParseIntError
sourceimpl FromStr for u16
impl FromStr for u16
type Err = ParseIntError
sourceimpl FromStr for u32
impl FromStr for u32
type Err = ParseIntError
sourceimpl FromStr for u64
impl FromStr for u64
type Err = ParseIntError
sourceimpl FromStr for u128
impl FromStr for u128
type Err = ParseIntError
sourceimpl FromStr for usize
impl FromStr for usize
type Err = ParseIntError
sourceimpl FromStr for Index
impl FromStr for Index
type Err = ParseIntError
sourceimpl FromStr for Pattern
impl FromStr for Pattern
type Err = PatternError
sourceimpl FromStr for String
impl FromStr for String
type Err = Infallible
1.45.0 · sourceimpl FromStr for OsString
impl FromStr for OsString
type Err = Infallible
1.5.0 · sourceimpl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
type Err = AddrParseError
1.5.0 · sourceimpl FromStr for SocketAddrV6
impl FromStr for SocketAddrV6
type Err = AddrParseError
sourceimpl FromStr for HeaderName
impl FromStr for HeaderName
type Err = InvalidHeaderName
sourceimpl FromStr for HeaderValue
impl FromStr for HeaderValue
type Err = InvalidHeaderValue
sourceimpl FromStr for Method
impl FromStr for Method
type Err = InvalidMethod
sourceimpl FromStr for StatusCode
impl FromStr for StatusCode
type Err = InvalidStatusCode
sourceimpl FromStr for Authority
impl FromStr for Authority
type Err = InvalidUri
sourceimpl FromStr for PathAndQuery
impl FromStr for PathAndQuery
type Err = InvalidUri
sourceimpl FromStr for Scheme
impl FromStr for Scheme
type Err = InvalidUri
sourceimpl FromStr for Uri
impl FromStr for Uri
type Err = InvalidUri
sourceimpl FromStr for Ipv4Net
impl FromStr for Ipv4Net
type Err = AddrParseError
sourceimpl FromStr for Ipv6Net
impl FromStr for Ipv6Net
type Err = AddrParseError
sourceimpl FromStr for Mime
impl FromStr for Mime
type Err = FromStrError
sourceimpl FromStr for BigInt
impl FromStr for BigInt
type Err = ParseBigIntError
sourceimpl FromStr for BigUint
impl FromStr for BigUint
type Err = ParseBigIntError
sourceimpl FromStr for ParamsString
impl FromStr for ParamsString
sourceimpl FromStr for tracing_core::metadata::Level
impl FromStr for tracing_core::metadata::Level
type Err = ParseLevelError
sourceimpl FromStr for tracing_core::metadata::LevelFilter
impl FromStr for tracing_core::metadata::LevelFilter
type Err = ParseLevelFilterError
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
impl FromStr for otter_nodejs_tests::lazy_regex::BytesRegex
impl FromStr for otter_nodejs_tests::lazy_regex::BytesRegex
sourceimpl FromStr for Version
impl FromStr for Version
type Err = VersionError
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
impl FromStr for SockaddrIn6
impl FromStr for SockaddrIn6
type Err = AddrParseError
impl FromStr for SockaddrIn
impl FromStr for SockaddrIn
type Err = AddrParseError
impl FromStr for Mutable
impl FromStr for Mutable
type Err = ParseError
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
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.