Struct tor_relay_selection::RelayUsage

source ·
pub struct RelayUsage { /* private fields */ }
Expand description

Description for how we plan to use a single relay.

Implementations§

source§

impl RelayUsage

source

pub fn any_exit(_cfg: &RelaySelectionConfig<'_>) -> Self

Require a relay that exits to at least one port.

This usage is generally suitable as the final relay for a testing circuit of some kind, or for a circuit that needs to look like an exit circuit without actually being useful for any exit in particular.

source

pub fn exit_to_all_ports( cfg: &RelaySelectionConfig<'_>, ports: Vec<TargetPort>, ) -> Self

Require a relay that exits to every port in a given list.

source

pub fn exit_to_any_port( cfg: &RelaySelectionConfig<'_>, ports: Vec<TargetPort>, ) -> Self

Require a relay that exits to at least one port in a given list.

source

pub fn middle_relay(known_final_hop_usage: Option<&RelayUsage>) -> Self

Require a relay that is suitable for a middle relay.

If known_final_hop_usage is provided, then the middle relay must support any additional properties needed in order to build a circuit for the usage of the final hop.

If known_final_hop_usage is not provided, then the middle relay must support all possible such additional properties.

(Note that providing a known_final_hop_usage can only weaken the requirements of this usage.)

source

pub fn new_intro_point() -> Self

Require a relay that is suitable as a newly selected introduction point.

This usage is suitable for selecting new introduction points for an onion service. When deciding whether to keep an introduction point, use RelayUsage::continuing_intro_point.

source

pub fn continuing_intro_point() -> Self

Require a relay that is suitable to keep using as a pre-existing introduction point.

source

pub fn new_guard() -> Self

Require a relay that is suitable as a newly selected guard.

This usage is suitable for selecting new guards. When deciding whether to keep a guard, use RelayUsage::continuing_guard.

source

pub fn continuing_guard() -> Self

Require a relay that is suitable to keep using as a pre-existing guard.

source

pub fn vanguard() -> Self

Available on crate feature vanguards only.

Require a relay that is suitable as a vanguard.

source

pub fn directory_cache() -> Self

Require a relay that is suitable to use for a directory request.

Note that this usage is suitable for fetching consensuses, authority certificates, descriptors and microdescriptors. It is not suitable for use with the HsDir system.

Trait Implementations§

source§

impl Clone for RelayUsage

source§

fn clone(&self) -> RelayUsage

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

impl Debug for RelayUsage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl LowLevelRelayPredicate for RelayUsage

source§

fn low_level_predicate_permits_relay(&self, relay_in: &Relay<'_>) -> bool

Return true if relay provides this predicate.

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

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

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

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

source§

type Output = T

Should always be Self
source§

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

source§

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>,

source§

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>,

source§

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

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

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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