pub struct RelayWeightsItem { /* private fields */ }Expand description
Relay weight information - w item in routerstatus
This is a combination of two representations of (subsets of) the same information,
from an optional w in the document.
-
Always contains the effective weight, as
RelayWeight. This is what is used by clients. It does not record whether awline was actually present. -
Can represent the presence and whole contents of the
wline, including all the known and unknown parameters. This is withinUnknown, so it is only present with cratefeature = "retain-unknown", and only some constructors/parsers record it.
§Parsing
Parsing is done with NetdocParseableFields rather than ItemValueParseable.
The params are Retained if retain_unknown_values is
selected in parse2::ParseOptions.
§Encoding
Encoding requires knowing whether a w line is to be included, and its contents,
so is implemented only with if effective is Unknown::Retained.
The encoding impl is only compiled in with "retain-unknown",
and throws Bug if applied to a RelayWeightsItem whose params are Discarded.
§Constructors
An “empty” RelayWeightsItem can be constructed with RelayWeightsItem::new_no_info.
A RelayWeightsItem containing only the effective RelayWeight
can be constructed using RelayWeightsItem::from_effective.
With "retain-unknown":
a RelayWeightsItem can be constructed from a NetParams<u32> using TryFrom;
and, implements Default, which yields a RelayWeightsItem
representing the (known) absence of a w line.
Implementations§
Source§impl RelayWeightsItem
impl RelayWeightsItem
Sourcepub fn new_no_info() -> Self
pub fn new_no_info() -> Self
Return a new RelayWeightsItem containing no information
As if parsed from a document with no w line, discarding unknown information.
Sourcepub fn from_effective(effective: RelayWeight) -> Self
pub fn from_effective(effective: RelayWeight) -> Self
Return a new RelayWeightsItem containing only the effective weight
Sourcepub fn effective(&self) -> RelayWeight
pub fn effective(&self) -> RelayWeight
Trait Implementations§
Source§impl Clone for RelayWeightsItem
impl Clone for RelayWeightsItem
Source§fn clone(&self) -> RelayWeightsItem
fn clone(&self) -> RelayWeightsItem
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RelayWeightsItem
impl Debug for RelayWeightsItem
Source§impl Default for RelayWeightsItem
Available on crate feature retain-unknown only.
impl Default for RelayWeightsItem
retain-unknown only.Source§impl NetdocEncodableFields for RelayWeightsItem
Available on crate feature incomplete only.
impl NetdocEncodableFields for RelayWeightsItem
incomplete only.Source§fn encode_fields(&self, out: &mut NetdocEncoder) -> Result<(), Bug>
fn encode_fields(&self, out: &mut NetdocEncoder) -> Result<(), Bug>
outSource§impl NetdocParseableFields for RelayWeightsItem
impl NetdocParseableFields for RelayWeightsItem
Source§fn is_item_keyword(kw: KeywordRef<'_>) -> bool
fn is_item_keyword(kw: KeywordRef<'_>) -> bool
Source§fn accumulate_item(
acc: &mut Self::Accumulator,
item: UnparsedItem<'_>,
) -> Result<(), EP>
fn accumulate_item( acc: &mut Self::Accumulator, item: UnparsedItem<'_>, ) -> Result<(), EP>
Source§fn finish(params: Self::Accumulator, items: &ItemStream<'_>) -> Result<Self, EP>
fn finish(params: Self::Accumulator, items: &ItemStream<'_>) -> Result<Self, EP>
Source§impl TryFrom<NetParams<u32>> for RelayWeightsItem
Available on crate feature retain-unknown only.
impl TryFrom<NetParams<u32>> for RelayWeightsItem
retain-unknown only.Source§type Error = InvalidRelayWeights
type Error = InvalidRelayWeights
Source§fn try_from(
params: NetParams<u32>,
) -> Result<RelayWeightsItem, InvalidRelayWeights>
fn try_from( params: NetParams<u32>, ) -> Result<RelayWeightsItem, InvalidRelayWeights>
Auto Trait Implementations§
impl Freeze for RelayWeightsItem
impl RefUnwindSafe for RelayWeightsItem
impl Send for RelayWeightsItem
impl Sync for RelayWeightsItem
impl Unpin for RelayWeightsItem
impl UnsafeUnpin for RelayWeightsItem
impl UnwindSafe for RelayWeightsItem
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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)
&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)
&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<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>
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