Struct tor_protover::Protocols [−][src]
pub struct Protocols { /* fields omitted */ }
Expand description
A set of supported or required subprotocol versions.
This type supports both recognized subprotocols (listed in ProtoKind), and unrecognized subprotocols (stored by name).
To construct an instance, use the FromStr trait:
use tor_protover::Protocols;
let p: Result<Protocols,_> = "Link=1-3 LinkAuth=2-3 Relay=1-2".parse();
Implementations
Check whether a known protocol version is supported.
use tor_protover::*;
let protos: Protocols = "Link=1-3 HSDir=2,4-5".parse().unwrap();
assert!(protos.supports_known_subver(ProtoKind::Link, 2));
assert!(protos.supports_known_subver(ProtoKind::HSDir, 4));
assert!(! protos.supports_known_subver(ProtoKind::HSDir, 3));
assert!(! protos.supports_known_subver(ProtoKind::LinkAuth, 3));
Check whether a protocol version identified by a string is supported.
use tor_protover::*;
let protos: Protocols = "Link=1-3 Foobar=7".parse().unwrap();
assert!(protos.supports_subver("Link", 2));
assert!(protos.supports_subver("Foobar", 7));
assert!(! protos.supports_subver("Link", 5));
assert!(! protos.supports_subver("Foobar", 6));
assert!(! protos.supports_subver("Wombat", 3));
Trait Implementations
The Display trait formats a protocol set in the format expected by Tor consensus documents.
use tor_protover::*;
let protos: Protocols = "Link=1,2,3 Foobar=7 Relay=2".parse().unwrap();
assert_eq!(format!("{}", protos),
"Foobar=7 Link=1-3 Relay=2");
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.
type Err = ParseError
type Err = ParseError
The associated error which can be returned from parsing.
Auto Trait Implementations
impl RefUnwindSafe for Protocols
impl UnwindSafe for Protocols
Blanket Implementations
Mutably borrows from an owned value. Read more