Trait ydb_unofficial::sqlx::prelude::FromStr
1.0.0 · source · pub trait FromStr: Sized {
type Err;
// Required method
fn from_str(s: &str) -> Result<Self, Self::Err>;
}sqlx only.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;
#[derive(Debug, PartialEq)]
struct Point {
x: i32,
y: i32
}
#[derive(Debug, PartialEq, Eq)]
struct ParsePointError;
impl FromStr for Point {
type Err = ParsePointError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
let (x, y) = s
.strip_prefix('(')
.and_then(|s| s.strip_suffix(')'))
.and_then(|s| s.split_once(','))
.ok_or(ParsePointError)?;
let x_fromstr = x.parse::<i32>().map_err(|_| ParsePointError)?;
let y_fromstr = y.parse::<i32>().map_err(|_| ParsePointError)?;
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);
// Invalid input string
assert!(Point::from_str("(1 2)").is_err());Required Associated Types§
Required Methods§
sourcefn from_str(s: &str) -> Result<Self, Self::Err>
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 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§
source§impl FromStr for SocketAddr
impl FromStr for SocketAddr
type Err = AddrParseError
source§impl FromStr for log::LevelFilter
impl FromStr for log::LevelFilter
type Err = ParseLevelError
1.5.0 · source§impl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
type Err = AddrParseError
1.5.0 · source§impl FromStr for SocketAddrV6
impl FromStr for SocketAddrV6
type Err = AddrParseError
1.35.0 · source§impl FromStr for NonZeroI16
impl FromStr for NonZeroI16
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroI32
impl FromStr for NonZeroI32
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroI64
impl FromStr for NonZeroI64
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroI128
impl FromStr for NonZeroI128
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroIsize
impl FromStr for NonZeroIsize
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroU16
impl FromStr for NonZeroU16
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroU32
impl FromStr for NonZeroU32
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroU64
impl FromStr for NonZeroU64
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroU128
impl FromStr for NonZeroU128
type Err = ParseIntError
1.35.0 · source§impl FromStr for NonZeroUsize
impl FromStr for NonZeroUsize
type Err = ParseIntError
source§impl FromStr for HeaderName
impl FromStr for HeaderName
type Err = InvalidHeaderName
source§impl FromStr for HeaderValue
impl FromStr for HeaderValue
type Err = InvalidHeaderValue
source§impl FromStr for StatusCode
impl FromStr for StatusCode
type Err = InvalidStatusCode
source§impl FromStr for PathAndQuery
impl FromStr for PathAndQuery
type Err = InvalidUri
source§impl FromStr for MetadataValue<Ascii>
impl FromStr for MetadataValue<Ascii>
type Err = InvalidMetadataValue
source§impl FromStr for Url
impl FromStr for Url
Parse a string as an URL, without a base URL or encoding override.
type Err = ParseError
§impl<C> FromStr for PublicKey<C>where
C: AssociatedOid + CurveArithmetic,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
impl<C> FromStr for PublicKey<C>where C: AssociatedOid + CurveArithmetic, <C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>, <C as Curve>::FieldBytesSize: ModulusSize,
§impl<C> FromStr for SecretKey<C>where
C: Curve + AssociatedOid + ValidatePublicKey,
<C as Curve>::FieldBytesSize: ModulusSize,
impl<C> FromStr for SecretKey<C>where C: Curve + AssociatedOid + ValidatePublicKey, <C as Curve>::FieldBytesSize: ModulusSize,
§impl<C> FromStr for Signature<C>where
C: PrimeCurve + CurveArithmetic,
<<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,
impl<C> FromStr for Signature<C>where C: PrimeCurve + CurveArithmetic, <<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,
§impl<C> FromStr for SigningKey<C>where
C: PrimeCurve + AssociatedOid + CurveArithmetic,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
<C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>,
<<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,
impl<C> FromStr for SigningKey<C>where C: PrimeCurve + AssociatedOid + CurveArithmetic, <C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>, <C as Curve>::FieldBytesSize: ModulusSize, <C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>, <<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,
§impl<C> FromStr for VerifyingKey<C>where
C: PrimeCurve + AssociatedOid + CurveArithmetic + PointCompression,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
impl<C> FromStr for VerifyingKey<C>where C: PrimeCurve + AssociatedOid + CurveArithmetic + PointCompression, <C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>, <C as Curve>::FieldBytesSize: ModulusSize,
§impl<Size> FromStr for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> FromStr for EncodedPoint<Size>where Size: ModulusSize,
Decode a SEC1-encoded point from hexadecimal.
Upper and lower case hexadecimal are both accepted, however mixed case is rejected.