Struct tor_netdir::details::RelayDetails
source · pub struct RelayDetails<'a>(/* private fields */);
Expand description
A view for lower-level details about a Relay
.
Most callers should avoid using this structure;
they should instead call higher-level functions
like those in the tor-relay-selection
crate.
Implementations§
source§impl<'a> RelayDetails<'a>
impl<'a> RelayDetails<'a>
sourcepub fn supports_exit_port_ipv4(&self, port: u16) -> bool
pub fn supports_exit_port_ipv4(&self, port: u16) -> bool
Return true if this relay allows exiting to port
on IPv4.
sourcepub fn supports_exit_port_ipv6(&self, port: u16) -> bool
pub fn supports_exit_port_ipv6(&self, port: u16) -> bool
Return true if this relay allows exiting to port
on IPv6.
sourcepub fn is_dir_cache(&self) -> bool
pub fn is_dir_cache(&self) -> bool
Return true if this relay is suitable for use as a directory cache.
sourcepub fn is_flagged_fast(&self) -> bool
pub fn is_flagged_fast(&self) -> bool
Return true if this relay has the “Fast” flag.
Most relays have this flag. It indicates that the relay is suitable for circuits that need more than a minimal amount of bandwidth.
sourcepub fn is_flagged_stable(&self) -> bool
pub fn is_flagged_stable(&self) -> bool
Return true if this relay has the “Stable” flag.
Most relays have this flag. It indicates that the relay is suitable for long-lived circuits.
sourcepub fn is_hs_intro_point(&self) -> bool
pub fn is_hs_intro_point(&self) -> bool
Return true if this relay is a potential HS introduction point
sourcepub fn is_suitable_as_guard(&self) -> bool
pub fn is_suitable_as_guard(&self) -> bool
Return true if this relay is suitable for use as a newly sampled guard, or for continuing to use as a guard.
sourcepub fn in_same_subnet(
&self,
other: &Relay<'_>,
subnet_config: &SubnetConfig
) -> bool
pub fn in_same_subnet( &self, other: &Relay<'_>, subnet_config: &SubnetConfig ) -> bool
Return true if both relays are in the same subnet, as configured by
subnet_config
.
Two relays are considered to be in the same subnet if they
have IPv4 addresses with the same subnets_family_v4
-bit
prefix, or if they have IPv6 addresses with the same
subnets_family_v6
-bit prefix.
sourcepub fn in_same_family(&self, other: &Relay<'_>) -> bool
pub fn in_same_family(&self, other: &Relay<'_>) -> bool
Return true if both relays are in the same family.
(Every relay is considered to be in the same family as itself.)
sourcepub fn policies_allow_some_port(&self) -> bool
pub fn policies_allow_some_port(&self) -> bool
Return true if there are any ports for which this Relay can be used for exit traffic.
(Returns false if this relay doesn’t allow exit traffic, or if it has been flagged as a bad exit.)
sourcepub fn ipv4_policy(&self) -> Arc<PortPolicy>
pub fn ipv4_policy(&self) -> Arc<PortPolicy>
Return the IPv4 exit policy for this relay. If the relay has been marked BadExit, return an empty policy
sourcepub fn ipv6_policy(&self) -> Arc<PortPolicy>
pub fn ipv6_policy(&self) -> Arc<PortPolicy>
Return the IPv6 exit policy for this relay. If the relay has been marked BadExit, return an empty policy
sourcepub fn ipv4_declared_policy(&self) -> &Arc<PortPolicy>
pub fn ipv4_declared_policy(&self) -> &Arc<PortPolicy>
Return the IPv4 exit policy declared by this relay.
In contrast to RelayDetails::ipv4_policy
,
this does not verify if the relay is marked BadExit.
sourcepub fn ipv6_declared_policy(&self) -> &Arc<PortPolicy>
pub fn ipv6_declared_policy(&self) -> &Arc<PortPolicy>
Return the IPv6 exit policy declared by this relay.
In contrast to RelayDetails::ipv6_policy
,
this does not verify if the relay is marked BadExit.
Trait Implementations§
source§impl<'a> Clone for RelayDetails<'a>
impl<'a> Clone for RelayDetails<'a>
source§fn clone(&self) -> RelayDetails<'a>
fn clone(&self) -> RelayDetails<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl<'a> Freeze for RelayDetails<'a>
impl<'a> RefUnwindSafe for RelayDetails<'a>
impl<'a> Send for RelayDetails<'a>
impl<'a> Sync for RelayDetails<'a>
impl<'a> Unpin for RelayDetails<'a>
impl<'a> UnwindSafe for RelayDetails<'a>
Blanket Implementations§
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more