pub struct AddrPortPattern {
pattern: IpPattern,
ports: PortRange,
}Expand description
A pattern that may or may not match an address and port.
Each AddrPortPattern has an IP pattern, which matches a set of addresses by prefix, and a port pattern, which matches a range of ports.
§Example
use tor_netdoc::types::policy::AddrPortPattern;
use std::net::{IpAddr,Ipv4Addr};
let localhost = IpAddr::V4(Ipv4Addr::new(127,3,4,5));
let not_localhost = IpAddr::V4(Ipv4Addr::new(192,0,2,16));
let pat: AddrPortPattern = "127.0.0.0/8:*".parse().unwrap();
assert!(pat.matches(&localhost, 22));
assert!(! pat.matches(¬_localhost, 22));Fields§
§pattern: IpPatternA pattern to match somewhere between zero and all IP addresses.
ports: PortRangeA pattern to match a range of ports.
Implementations§
Source§impl AddrPortPattern
impl AddrPortPattern
Sourcepub fn matches(&self, addr: &IpAddr, port: u16) -> bool
pub fn matches(&self, addr: &IpAddr, port: u16) -> bool
Return true iff this pattern matches a given address and port.
Sourcepub fn matches_sockaddr(&self, addr: &SocketAddr) -> bool
pub fn matches_sockaddr(&self, addr: &SocketAddr) -> bool
As matches, but accept a SocketAddr.
Trait Implementations§
Source§impl Clone for AddrPortPattern
impl Clone for AddrPortPattern
Source§fn clone(&self) -> AddrPortPattern
fn clone(&self) -> AddrPortPattern
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AddrPortPattern
impl Debug for AddrPortPattern
Source§impl<'de> Deserialize<'de> for AddrPortPattern
impl<'de> Deserialize<'de> for AddrPortPattern
Source§fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for AddrPortPattern
impl Display for AddrPortPattern
Source§impl FromStr for AddrPortPattern
impl FromStr for AddrPortPattern
Source§impl PartialEq for AddrPortPattern
impl PartialEq for AddrPortPattern
Source§fn eq(&self, other: &AddrPortPattern) -> bool
fn eq(&self, other: &AddrPortPattern) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for AddrPortPatternwhere
Self: Display,
impl Serialize for AddrPortPatternwhere
Self: Display,
impl Eq for AddrPortPattern
impl NormalItemArgument for AddrPortPattern
impl StructuralPartialEq for AddrPortPattern
Auto Trait Implementations§
impl Freeze for AddrPortPattern
impl RefUnwindSafe for AddrPortPattern
impl Send for AddrPortPattern
impl Sync for AddrPortPattern
impl Unpin for AddrPortPattern
impl UnsafeUnpin for AddrPortPattern
impl UnwindSafe for AddrPortPattern
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> ItemArgument for Twhere
T: NormalItemArgument + Display,
impl<T> ItemArgument for Twhere
T: NormalItemArgument + Display,
Source§fn write_arg_onto(&self, out: &mut ItemEncoder<'_>) -> Result<(), Bug>
fn write_arg_onto(&self, out: &mut ItemEncoder<'_>) -> Result<(), Bug>
Format as a string suitable for including as a netdoc keyword line argument Read more
Source§impl<T> ItemArgumentParseable for Twhere
T: NormalItemArgument + FromStr,
impl<T> ItemArgumentParseable for Twhere
T: NormalItemArgument + FromStr,
Source§fn from_args<'s>(args: &mut ArgumentStream<'s>) -> Result<T, ArgumentError>
fn from_args<'s>(args: &mut ArgumentStream<'s>) -> Result<T, ArgumentError>
Parse the argument