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>

source

pub fn supports_exit_port_ipv4(&self, port: u16) -> bool

Return true if this relay allows exiting to port on IPv4.

source

pub fn supports_exit_port_ipv6(&self, port: u16) -> bool

Return true if this relay allows exiting to port on IPv6.

source

pub fn is_dir_cache(&self) -> bool

Return true if this relay is suitable for use as a directory cache.

source

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.

source

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.

source

pub fn is_hs_intro_point(&self) -> bool

Return true if this relay is a potential HS introduction point

source

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.

source

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.

source

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

source

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

source

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

source

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

source

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.

source

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>

source§

fn clone(&self) -> RelayDetails<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto 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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more