Trait tor_hsservice::internal_prelude::FromStr

1.0.0 · source ·
pub(crate) trait FromStr: Sized {
    type Err;

    // Required method
    fn from_str(s: &str) -> Result<Self, Self::Err>;
}
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§

1.0.0 · source

type Err

The associated error which can be returned from parsing.

Required Methods§

1.0.0 · source

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);

Object Safety§

This trait is not object safe.

Implementors§

source§

impl FromStr for AuthorizedClientConfig

source§

impl FromStr for IptKeyRole

§

type Err = ParseError

1.7.0 · source§

impl FromStr for IpAddr

1.0.0 · source§

impl FromStr for SocketAddr

source§

impl FromStr for log::Level

source§

impl FromStr for log::LevelFilter

source§

impl FromStr for serde_json::value::Value

§

type Err = Error

1.0.0 · source§

impl FromStr for bool

1.20.0 · source§

impl FromStr for char

1.0.0 · source§

impl FromStr for f32

1.0.0 · source§

impl FromStr for f64

1.0.0 · source§

impl FromStr for i8

1.0.0 · source§

impl FromStr for i16

1.0.0 · source§

impl FromStr for i32

1.0.0 · source§

impl FromStr for i64

1.0.0 · source§

impl FromStr for i128

1.0.0 · source§

impl FromStr for isize

1.0.0 · source§

impl FromStr for u8

1.0.0 · source§

impl FromStr for u16

1.0.0 · source§

impl FromStr for u32

1.0.0 · source§

impl FromStr for u64

1.0.0 · source§

impl FromStr for u128

1.0.0 · source§

impl FromStr for usize

source§

impl FromStr for CountryCode

§

type Err = Error

source§

impl FromStr for OptionCc

§

type Err = Error

source§

impl FromStr for BridgeConfig

source§

impl FromStr for BridgeConfigBuilder

BridgeConfigBuilder parses the same way as BridgeConfig

source§

impl FromStr for ArtiPath

source§

impl FromStr for KeystoreId

§

type Err = Error

source§

impl FromStr for Protocols

A Protocols set can be parsed from a string according to the format used in Tor consensus documents.

A protocols set is represented by a space-separated list of entries. Each entry is of the form Name=Versions, where Name is the name of a protocol, and Versions is a comma-separated list of version numbers and version ranges. Each version range is a pair of integers separated by -.

No protocol name may be listed twice. No version may be listed twice for a single protocol. All versions must be in range 0 through 63 inclusive.

source§

impl FromStr for IptLocalId

source§

impl FromStr for HsNickname

source§

impl FromStr for FutureTimestamp

source§

impl FromStr for Reference

§

impl FromStr for Signature

Decode a signature from hexadecimal.

Upper and lower case hexadecimal are both accepted, however mixed case is rejected.

§

type Err = Error

1.0.0 · source§

impl FromStr for String

Available on non-no_global_oom_handling only.
1.0.0 · source§

impl FromStr for Ipv4Addr

1.0.0 · source§

impl FromStr for Ipv6Addr

1.5.0 · source§

impl FromStr for SocketAddrV4

1.5.0 · source§

impl FromStr for SocketAddrV6

1.35.0 · source§

impl FromStr for NonZero<i8>

1.35.0 · source§

impl FromStr for NonZero<i16>

1.35.0 · source§

impl FromStr for NonZero<i32>

1.35.0 · source§

impl FromStr for NonZero<i64>

1.35.0 · source§

impl FromStr for NonZero<i128>

1.35.0 · source§

impl FromStr for NonZero<isize>

1.35.0 · source§

impl FromStr for NonZero<u8>

1.35.0 · source§

impl FromStr for NonZero<u16>

1.35.0 · source§

impl FromStr for NonZero<u32>

1.35.0 · source§

impl FromStr for NonZero<u64>

1.35.0 · source§

impl FromStr for NonZero<u128>

1.35.0 · source§

impl FromStr for NonZero<usize>

1.45.0 · source§

impl FromStr for OsString

source§

impl FromStr for num_bigint_dig::bigint::BigInt

source§

impl FromStr for num_bigint_dig::biguint::BigUint

source§

impl FromStr for num_bigint::bigint::BigInt

source§

impl FromStr for num_bigint::biguint::BigUint

source§

impl FromStr for Number

§

type Err = Error

source§

impl FromStr for Url

Parse a string as an URL, without a base URL or encoding override.

§

impl FromStr for HsId

§

type Err = HsIdParseError

1.32.0 · source§

impl FromStr for tor_hsservice::internal_prelude::PathBuf

§

impl FromStr for AddrPortPattern

§

type Err = PolicyError

§

impl FromStr for Address

§

type Err = Error

§

impl FromStr for Algorithm

§

type Err = LabelError

§

impl FromStr for AlgorithmName

§

type Err = LabelError

§

impl FromStr for AsciiString

§

type Err = AsAsciiStrError

§

impl FromStr for Authority

§

type Err = InvalidUri

§

impl FromStr for BmpString

§

type Err = Error

§

impl FromStr for BridgeAddr

§

type Err = BridgeAddrError

§

impl FromStr for Certificate

§

type Err = Error

§

impl FromStr for Cipher

§

type Err = LabelError

§

impl FromStr for ConfigOpts

Available on crate feature alloc only.
§

type Err = Error

§

impl FromStr for DateTime

§

type Err = Error

§

impl FromStr for Datetime

§

type Err = DatetimeParseError

§

impl FromStr for Deserializer

Available on crate feature parse only.
§

type Err = Error

§

impl FromStr for DocumentMut

Available on crate feature parse only.
§

type Err = TomlError

§

impl FromStr for Duration

§

type Err = Error

§

impl FromStr for EcdsaCurve

§

type Err = LabelError

§

impl FromStr for Entry

§

type Err = Error

§

impl FromStr for Entry

§

type Err = Error

§

impl FromStr for Fingerprint

§

type Err = Error

§

impl FromStr for HashAlg

§

type Err = LabelError

§

impl FromStr for HeaderName

§

type Err = InvalidHeaderName

§

impl FromStr for HeaderValue

§

type Err = InvalidHeaderValue

§

impl FromStr for HostPatterns

§

type Err = Error

§

impl FromStr for HttpDate

§

type Err = Error

§

impl FromStr for ImDocument<String>

Available on crate feature parse only.
§

type Err = TomlError

§

impl FromStr for InternalString

§

impl FromStr for Item

Available on crate feature parse only.
§

type Err = TomlError

§

impl FromStr for KdfAlg

§

type Err = LabelError

§

impl FromStr for Key

Available on crate feature parse only.
§

type Err = TomlError

§

impl FromStr for Level

§

type Err = ParseLevelError

§

impl FromStr for LevelFilter

§

type Err = ParseLevelFilterError

§

impl FromStr for Map<String, Value>

Available on crate feature parse only.
§

type Err = Error

§

impl FromStr for Marker

§

type Err = Error

§

impl FromStr for Method

§

type Err = InvalidMethod

§

impl FromStr for Month

§

type Err = InvalidVariant

§

impl FromStr for Nickname

§

type Err = Error

§

impl FromStr for Num

§

impl FromStr for ObjectIdentifier

§

type Err = Error

§

impl FromStr for PaddingLevel

§

type Err = ParseError

§

impl FromStr for PathAndQuery

§

type Err = InvalidUri

§

impl FromStr for PathBuf

§

impl FromStr for PortPolicy

§

type Err = PolicyError

§

impl FromStr for PortRange

§

type Err = PolicyError

§

impl FromStr for PrivateKey

§

type Err = Error

§

impl FromStr for PtTargetAddr

§

type Err = BridgeAddrError

§

impl FromStr for PtTransportName

§

type Err = TransportIdError

§

impl FromStr for PublicKey

§

type Err = Error

§

impl FromStr for Regex

§

type Err = Error

§

impl FromStr for Regex

§

type Err = Error

§

impl FromStr for RelayFamily

§

type Err = Error

§

impl FromStr for RelayFlags

§

impl FromStr for RelayId

§

type Err = RelayIdError

§

impl FromStr for RelayIdType

§

type Err = RelayIdError

§

impl FromStr for RelayPlatform

§

type Err = Error

§

impl FromStr for Scheme

§

type Err = InvalidUri

§

impl FromStr for SendMeVersion

§

type Err = <u8 as FromStr>::Err

§

impl FromStr for SshSig

§

type Err = Error

§

impl FromStr for StatusCode

§

type Err = InvalidStatusCode

§

impl FromStr for TagMode

§

type Err = Error

§

impl FromStr for Timestamp

§

type Err = Error

§

impl FromStr for TorVersion

§

type Err = Error

§

impl FromStr for TransportId

§

type Err = TransportIdError

§

impl FromStr for Uri

§

type Err = InvalidUri

§

impl FromStr for Value

Available on crate feature parse only.
§

type Err = Error

§

impl FromStr for Value

Available on crate feature parse only.
§

type Err = TomlError

§

impl FromStr for ValueDeserializer

Available on crate feature parse only.
§

type Err = Error

§

impl FromStr for Weekday

§

type Err = InvalidVariant

§

impl FromStr for u1

§

impl FromStr for u2

§

impl FromStr for u3

§

impl FromStr for u4

§

impl FromStr for u5

§

impl FromStr for u6

§

impl FromStr for u7

§

impl FromStr for u24

§

impl FromStr for u40

§

impl FromStr for u48

§

impl FromStr for u56

§

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.

§

type Err = Error

§

impl<T> FromStr for IntegerDays<T>
where T: FromStr,

§

type Err = <T as FromStr>::Err

§

impl<T> FromStr for IntegerMilliseconds<T>
where T: FromStr,

§

type Err = <T as FromStr>::Err

§

impl<T> FromStr for IntegerMinutes<T>
where T: FromStr,

§

type Err = <T as FromStr>::Err

§

impl<T> FromStr for IntegerSeconds<T>
where T: FromStr,

§

type Err = <T as FromStr>::Err

§

impl<T> FromStr for NetParams<T>
where T: FromStr, <T as FromStr>::Err: Error,

§

type Err = Error

§

impl<T> FromStr for NotNan<T>
where T: Float + FromStr,

§

type Err = ParseNotNanError<<T as FromStr>::Err>

§

impl<T> FromStr for OrderedFloat<T>
where T: FromStr,

§

type Err = <T as FromStr>::Err

source§

impl<const CAP: usize> FromStr for ArrayString<CAP>

§

impl<const L: i32, const H: i32> FromStr for BoundedInt32<L, H>

§

type Err = Error

§

impl<const MIN: i8, const MAX: i8> FromStr for RangedI8<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: i16, const MAX: i16> FromStr for RangedI16<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: i32, const MAX: i32> FromStr for RangedI32<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: i64, const MAX: i64> FromStr for RangedI64<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: i128, const MAX: i128> FromStr for RangedI128<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: isize, const MAX: isize> FromStr for RangedIsize<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: u8, const MAX: u8> FromStr for RangedU8<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: u16, const MAX: u16> FromStr for RangedU16<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: u32, const MAX: u32> FromStr for RangedU32<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: u64, const MAX: u64> FromStr for RangedU64<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: u128, const MAX: u128> FromStr for RangedU128<MIN, MAX>

§

type Err = ParseIntError

§

impl<const MIN: usize, const MAX: usize> FromStr for RangedUsize<MIN, MAX>

§

type Err = ParseIntError

§

impl<const N: usize> FromStr for TinyAsciiStr<N>

§

type Err = TinyStrError