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 subprotcols (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 = ParseErrorThe associated error which can be returned from parsing.
Auto Trait Implementations
impl RefUnwindSafe for Protocolsimpl UnwindSafe for ProtocolsBlanket Implementations
Mutably borrows from an owned value. Read more