pub struct LabeledNetworkPrefix {
pub prefix: IpNet,
pub labels: SmallVec<[MplsLabel; 2]>,
pub path_id: Option<u32>,
}Expand description
A network prefix with MPLS labels (RFC 3107/8277)
Fields§
§prefix: IpNetThe IP prefix (IPv4 or IPv6)
labels: SmallVec<[MplsLabel; 2]>MPLS label stack, ordered from top to bottom Uses SmallVec to avoid heap allocations for the common 1-2 label case
path_id: Option<u32>ADD-PATH path identifier (RFC 7911)
Implementations§
Source§impl LabeledNetworkPrefix
impl LabeledNetworkPrefix
Sourcepub fn try_new(
prefix: IpNet,
labels: SmallVec<[MplsLabel; 2]>,
path_id: Option<u32>,
) -> Result<Self, LabeledNetworkPrefixError>
pub fn try_new( prefix: IpNet, labels: SmallVec<[MplsLabel; 2]>, path_id: Option<u32>, ) -> Result<Self, LabeledNetworkPrefixError>
Create a new labeled prefix with validation. Returns Err if labels is empty or if total length exceeds 255 bits.
Sourcepub fn bottom_label(&self) -> Option<&MplsLabel>
pub fn bottom_label(&self) -> Option<&MplsLabel>
Get the bottom label (last in the stack)
Sourcepub fn has_multiple_labels(&self) -> bool
pub fn has_multiple_labels(&self) -> bool
Check if the prefix has multiple labels
Sourcepub fn label_count(&self) -> usize
pub fn label_count(&self) -> usize
Get the number of labels
Trait Implementations§
Source§impl Clone for LabeledNetworkPrefix
impl Clone for LabeledNetworkPrefix
Source§fn clone(&self) -> LabeledNetworkPrefix
fn clone(&self) -> LabeledNetworkPrefix
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 LabeledNetworkPrefix
impl Debug for LabeledNetworkPrefix
Source§impl PartialEq for LabeledNetworkPrefix
impl PartialEq for LabeledNetworkPrefix
Source§fn eq(&self, other: &LabeledNetworkPrefix) -> bool
fn eq(&self, other: &LabeledNetworkPrefix) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for LabeledNetworkPrefix
impl StructuralPartialEq for LabeledNetworkPrefix
Auto Trait Implementations§
impl Freeze for LabeledNetworkPrefix
impl RefUnwindSafe for LabeledNetworkPrefix
impl Send for LabeledNetworkPrefix
impl Sync for LabeledNetworkPrefix
impl Unpin for LabeledNetworkPrefix
impl UnsafeUnpin for LabeledNetworkPrefix
impl UnwindSafe for LabeledNetworkPrefix
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
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<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 more