IpRTrieSet

Struct IpRTrieSet 

Source
pub struct IpRTrieSet {
    pub ipv4: Ipv4RTrieSet,
    pub ipv6: Ipv6RTrieSet,
}
Expand description

A radix trie set that mix both Ipv4 and Ipv6 prefixes

Fields§

§ipv4: Ipv4RTrieSet§ipv6: Ipv6RTrieSet

Implementations§

Source§

impl IpRTrieSet

Source

pub fn new() -> Self

Source

pub fn compress(self) -> IpLCTrieSet

Source

pub fn shrink_to_fit(&mut self)

Source

pub fn len(&self) -> NonZeroUsize

Returns the size of the set.

Notice that it always greater or equals two since two top prefixes are always present in the map (one for Ipv4 and the other for Ipv6)

Source

pub fn contains(&self, ipnet: &IpNet) -> bool

Checks if an element is present (exact match).

Source

pub fn get(&self, ipnet: &IpNet) -> Option<IpNet>

Gets the value associated with an exact match of the key.

To access to the longest prefix match, use Self::lookup.

Source

pub fn lookup(&self, ipnet: &IpNet) -> IpNet

Gets the longest prefix which matches the given key.

As the top prefix always matches, it never fails.

To access to the exact prefix match, use Self::get.

Source

pub fn insert(&mut self, ipnet: IpNet) -> bool

Inserts a new element in the set.

If the specified element already exists in the set, false is returned.

Source

pub fn remove(&mut self, ipnet: &IpNet) -> bool

Removes a previously inserted prefix (exact match).

Returns false is the element was not present in the set and true if the removal is effective.

Source

pub fn replace(&mut self, ipnet: IpNet) -> Option<IpNet>

Replace an existing prefix.

Adds a prefix to the set, replacing the existing one, if any (exact match performed). Returns the replaced value.

Source

pub fn iter(&self) -> impl Iterator<Item = IpNet> + '_

Iterates over all the prefixes of this set.

Trait Implementations§

Source§

impl Clone for IpRTrieSet

Source§

fn clone(&self) -> IpRTrieSet

Returns a duplicate 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 Default for IpRTrieSet

Source§

fn default() -> IpRTrieSet

Returns the “default value” for a type. Read more
Source§

impl Extend<IpNet> for IpRTrieSet

Source§

fn extend<I: IntoIterator<Item = IpNet>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl Extend<Ipv4Net> for IpRTrieSet

Source§

fn extend<I: IntoIterator<Item = Ipv4Net>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl Extend<Ipv6Net> for IpRTrieSet

Source§

fn extend<I: IntoIterator<Item = Ipv6Net>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl FromIterator<IpNet> for IpRTrieSet

Source§

fn from_iter<I: IntoIterator<Item = IpNet>>(iter: I) -> Self

Creates a value from an iterator. Read more
Source§

impl FromIterator<Ipv4Net> for IpRTrieSet

Source§

fn from_iter<I: IntoIterator<Item = Ipv4Net>>(iter: I) -> Self

Creates a value from an iterator. Read more
Source§

impl FromIterator<Ipv6Net> for IpRTrieSet

Source§

fn from_iter<I: IntoIterator<Item = Ipv6Net>>(iter: I) -> Self

Creates a value from an iterator. Read more

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, dest: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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