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: Ipv6RTrieSetImplementations§
Source§impl IpRTrieSet
impl IpRTrieSet
pub fn new() -> Self
pub fn compress(self) -> IpLCTrieSet
pub fn shrink_to_fit(&mut self)
Sourcepub fn len(&self) -> NonZeroUsize
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)
Sourcepub fn get(&self, ipnet: &IpNet) -> Option<IpNet>
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.
Sourcepub fn lookup(&self, ipnet: &IpNet) -> IpNet
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.
Sourcepub fn insert(&mut self, ipnet: IpNet) -> bool
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.
Sourcepub fn remove(&mut self, ipnet: &IpNet) -> bool
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.
Trait Implementations§
Source§impl Clone for IpRTrieSet
impl Clone for IpRTrieSet
Source§fn clone(&self) -> IpRTrieSet
fn clone(&self) -> IpRTrieSet
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for IpRTrieSet
impl Default for IpRTrieSet
Source§fn default() -> IpRTrieSet
fn default() -> IpRTrieSet
Returns the “default value” for a type. Read more
Source§impl Extend<IpNet> for IpRTrieSet
impl Extend<IpNet> for IpRTrieSet
Source§fn extend<I: IntoIterator<Item = IpNet>>(&mut self, iter: I)
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)
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)
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
impl Extend<Ipv4Net> for IpRTrieSet
Source§fn extend<I: IntoIterator<Item = Ipv4Net>>(&mut self, iter: I)
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)
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)
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
impl Extend<Ipv6Net> for IpRTrieSet
Source§fn extend<I: IntoIterator<Item = Ipv6Net>>(&mut self, iter: I)
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)
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)
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
impl FromIterator<IpNet> for IpRTrieSet
Source§impl FromIterator<Ipv4Net> for IpRTrieSet
impl FromIterator<Ipv4Net> for IpRTrieSet
Source§impl FromIterator<Ipv6Net> for IpRTrieSet
impl FromIterator<Ipv6Net> for IpRTrieSet
Auto Trait Implementations§
impl Freeze for IpRTrieSet
impl RefUnwindSafe for IpRTrieSet
impl Send for IpRTrieSet
impl Sync for IpRTrieSet
impl Unpin for IpRTrieSet
impl UnwindSafe for IpRTrieSet
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