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 WhitelistMintMode
impl FromStr for WhitelistMintMode
impl FromStr for CommitmentLevel
impl FromStr for CommitmentLevel
type Err = ParseCommitmentLevelError
sourceimpl FromStr for SocketAddr
impl FromStr for SocketAddr
type Err = AddrParseError
1.7.0 · sourceimpl FromStr for IpAddr
impl FromStr for IpAddr
type Err = AddrParseError
sourceimpl FromStr for EndpointMode
impl FromStr for EndpointMode
type Err = InvalidEndpointMode
sourceimpl FromStr for AnalyticsS3ExportFileFormat
impl FromStr for AnalyticsS3ExportFileFormat
type Err = Infallible
sourceimpl FromStr for ArchiveStatus
impl FromStr for ArchiveStatus
type Err = Infallible
sourceimpl FromStr for BucketAccelerateStatus
impl FromStr for BucketAccelerateStatus
type Err = Infallible
sourceimpl FromStr for BucketCannedAcl
impl FromStr for BucketCannedAcl
type Err = Infallible
sourceimpl FromStr for BucketLocationConstraint
impl FromStr for BucketLocationConstraint
type Err = Infallible
sourceimpl FromStr for BucketLogsPermission
impl FromStr for BucketLogsPermission
type Err = Infallible
sourceimpl FromStr for BucketVersioningStatus
impl FromStr for BucketVersioningStatus
type Err = Infallible
sourceimpl FromStr for CompressionType
impl FromStr for CompressionType
type Err = Infallible
sourceimpl FromStr for DeleteMarkerReplicationStatus
impl FromStr for DeleteMarkerReplicationStatus
type Err = Infallible
sourceimpl FromStr for EncodingType
impl FromStr for EncodingType
type Err = Infallible
sourceimpl FromStr for ExistingObjectReplicationStatus
impl FromStr for ExistingObjectReplicationStatus
type Err = Infallible
sourceimpl FromStr for ExpirationStatus
impl FromStr for ExpirationStatus
type Err = Infallible
sourceimpl FromStr for ExpressionType
impl FromStr for ExpressionType
type Err = Infallible
sourceimpl FromStr for FileHeaderInfo
impl FromStr for FileHeaderInfo
type Err = Infallible
sourceimpl FromStr for FilterRuleName
impl FromStr for FilterRuleName
type Err = Infallible
sourceimpl FromStr for IntelligentTieringAccessTier
impl FromStr for IntelligentTieringAccessTier
type Err = Infallible
sourceimpl FromStr for IntelligentTieringStatus
impl FromStr for IntelligentTieringStatus
type Err = Infallible
sourceimpl FromStr for InventoryFormat
impl FromStr for InventoryFormat
type Err = Infallible
sourceimpl FromStr for InventoryFrequency
impl FromStr for InventoryFrequency
type Err = Infallible
sourceimpl FromStr for InventoryIncludedObjectVersions
impl FromStr for InventoryIncludedObjectVersions
type Err = Infallible
sourceimpl FromStr for InventoryOptionalField
impl FromStr for InventoryOptionalField
type Err = Infallible
sourceimpl FromStr for JsonType
impl FromStr for JsonType
type Err = Infallible
sourceimpl FromStr for MetadataDirective
impl FromStr for MetadataDirective
type Err = Infallible
sourceimpl FromStr for MetricsStatus
impl FromStr for MetricsStatus
type Err = Infallible
sourceimpl FromStr for MfaDelete
impl FromStr for MfaDelete
type Err = Infallible
sourceimpl FromStr for MfaDeleteStatus
impl FromStr for MfaDeleteStatus
type Err = Infallible
sourceimpl FromStr for ObjectCannedAcl
impl FromStr for ObjectCannedAcl
type Err = Infallible
sourceimpl FromStr for ObjectLockEnabled
impl FromStr for ObjectLockEnabled
type Err = Infallible
sourceimpl FromStr for ObjectLockLegalHoldStatus
impl FromStr for ObjectLockLegalHoldStatus
type Err = Infallible
sourceimpl FromStr for ObjectLockMode
impl FromStr for ObjectLockMode
type Err = Infallible
sourceimpl FromStr for ObjectLockRetentionMode
impl FromStr for ObjectLockRetentionMode
type Err = Infallible
sourceimpl FromStr for ObjectOwnership
impl FromStr for ObjectOwnership
type Err = Infallible
sourceimpl FromStr for ObjectStorageClass
impl FromStr for ObjectStorageClass
type Err = Infallible
sourceimpl FromStr for ObjectVersionStorageClass
impl FromStr for ObjectVersionStorageClass
type Err = Infallible
sourceimpl FromStr for OwnerOverride
impl FromStr for OwnerOverride
type Err = Infallible
sourceimpl FromStr for Payer
impl FromStr for Payer
type Err = Infallible
sourceimpl FromStr for Permission
impl FromStr for Permission
type Err = Infallible
sourceimpl FromStr for Protocol
impl FromStr for Protocol
type Err = Infallible
sourceimpl FromStr for QuoteFields
impl FromStr for QuoteFields
type Err = Infallible
sourceimpl FromStr for ReplicaModificationsStatus
impl FromStr for ReplicaModificationsStatus
type Err = Infallible
sourceimpl FromStr for ReplicationRuleStatus
impl FromStr for ReplicationRuleStatus
type Err = Infallible
sourceimpl FromStr for ReplicationStatus
impl FromStr for ReplicationStatus
type Err = Infallible
sourceimpl FromStr for ReplicationTimeStatus
impl FromStr for ReplicationTimeStatus
type Err = Infallible
sourceimpl FromStr for RequestCharged
impl FromStr for RequestCharged
type Err = Infallible
sourceimpl FromStr for RequestPayer
impl FromStr for RequestPayer
type Err = Infallible
sourceimpl FromStr for RestoreRequestType
impl FromStr for RestoreRequestType
type Err = Infallible
sourceimpl FromStr for ServerSideEncryption
impl FromStr for ServerSideEncryption
type Err = Infallible
sourceimpl FromStr for SseKmsEncryptedObjectsStatus
impl FromStr for SseKmsEncryptedObjectsStatus
type Err = Infallible
sourceimpl FromStr for StorageClass
impl FromStr for StorageClass
type Err = Infallible
sourceimpl FromStr for StorageClassAnalysisSchemaVersion
impl FromStr for StorageClassAnalysisSchemaVersion
type Err = Infallible
sourceimpl FromStr for TaggingDirective
impl FromStr for TaggingDirective
type Err = Infallible
sourceimpl FromStr for Tier
impl FromStr for Tier
type Err = Infallible
sourceimpl FromStr for TransitionStorageClass
impl FromStr for TransitionStorageClass
type Err = Infallible
sourceimpl FromStr for Type
impl FromStr for Type
type Err = Infallible
sourceimpl FromStr for chrono::Month
impl FromStr for 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 chrono::Weekday
impl FromStr for 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 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 log::Level
impl FromStr for log::Level
type Err = ParseLevelError
sourceimpl FromStr for log::LevelFilter
impl FromStr for 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 sugar_cli::utils::Hash
impl FromStr for sugar_cli::utils::Hash
type Err = ParseHashError
impl FromStr for CommitmentConfig
impl FromStr for CommitmentConfig
type Err = ParseCommitmentLevelError
sourceimpl FromStr for Pubkey
impl FromStr for Pubkey
type Err = ParsePubkeyError
sourceimpl FromStr for String
impl FromStr for String
type Err = Infallible
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
1.35.0 · sourceimpl FromStr for NonZeroUsize
impl FromStr for NonZeroUsize
type Err = ParseIntError
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 Ipv4Addr
impl FromStr for Ipv4Addr
type Err = AddrParseError
sourceimpl FromStr for Ipv6Addr
impl FromStr for Ipv6Addr
type Err = AddrParseError
sourceimpl FromStr for chrono::datetime::DateTime<FixedOffset>
impl FromStr for chrono::datetime::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 const_oid::ObjectIdentifier
impl FromStr for const_oid::ObjectIdentifier
sourceimpl FromStr for Pattern
impl FromStr for Pattern
type Err = PatternError
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 num_bigint::bigint::BigInt
impl FromStr for num_bigint::bigint::BigInt
type Err = ParseBigIntError
sourceimpl FromStr for num_bigint::biguint::BigUint
impl FromStr for num_bigint::biguint::BigUint
type Err = ParseBigIntError
sourceimpl FromStr for num_bigint_dig::bigint::BigInt
impl FromStr for num_bigint_dig::bigint::BigInt
type Err = ParseBigIntError
sourceimpl FromStr for num_bigint_dig::biguint::BigUint
impl FromStr for num_bigint_dig::biguint::BigUint
type Err = ParseBigIntError
sourceimpl FromStr for num_bigint::bigint::BigInt
impl FromStr for num_bigint::bigint::BigInt
type Err = ParseBigIntError
sourceimpl FromStr for num_bigint::biguint::BigUint
impl FromStr for num_bigint::biguint::BigUint
type Err = ParseBigIntError
sourceimpl FromStr for RsaPrivateKeyDocument
impl FromStr for RsaPrivateKeyDocument
sourceimpl FromStr for RsaPublicKeyDocument
impl FromStr for RsaPublicKeyDocument
sourceimpl FromStr for PrivateKeyDocument
impl FromStr for PrivateKeyDocument
sourceimpl FromStr for BuildMetadata
impl FromStr for BuildMetadata
sourceimpl FromStr for Comparator
impl FromStr for Comparator
sourceimpl FromStr for Prerelease
impl FromStr for Prerelease
sourceimpl FromStr for VersionReq
impl FromStr for VersionReq
sourceimpl FromStr for solana_program::blake3::Hash
impl FromStr for solana_program::blake3::Hash
type Err = ParseHashError
sourceimpl FromStr for solana_program::keccak::Hash
impl FromStr for solana_program::keccak::Hash
type Err = ParseHashError
sourceimpl FromStr for PublicKeyDocument
impl FromStr for PublicKeyDocument
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
sourceimpl FromStr for Url
impl FromStr for Url
Parse a string as an URL, without a base URL or encoding override.
type Err = ParseError
1.32.0 · sourceimpl FromStr for PathBuf
impl FromStr for PathBuf
type Err = Infallible
type Err = Error
impl FromStr for Signature
impl FromStr for Signature
Decode a signature from hexadecimal.
Upper and lower case hexadecimal are both accepted, however mixed case is rejected.