pub struct Pfx2as { /* private fields */ }
Expand description
A data structure for performing prefix-to-ASN mappings.
The Pfx2as
struct uses an internal trie to organize IP prefixes
and their associated Autonomous System Numbers (ASNs). It provides
functionality for loading prefix-to-ASN mappings from a source file and
methods for performing exact and longest prefix matches.
§Features
- Load prefix-to-ASN mappings from a JSON data source (
pfx2as-latest.json.bz2
). - Perform exact match lookups with the
lookup_exact
method. - Perform longest prefix match (LPM) lookups with the
lookup_longest
method.
Implementations§
Source§impl Pfx2as
impl Pfx2as
pub fn new(path_opt: Option<String>) -> Result<Pfx2as>
Sourcepub fn lookup_exact(&self, prefix: IpNet) -> Vec<u32>
pub fn lookup_exact(&self, prefix: IpNet) -> Vec<u32>
Look up exact matches for the given IP prefix.
This method searches for prefixes in the trie that exactly match the given prefix
.
If a match is found, it returns a vector containing ASNs associated with the matching prefix.
If no match is found, an empty vector is returned.
§Arguments
prefix
- AnIpNet
object representing the IP prefix to be matched.
§Returns
A Vec<u32>
containing ASNs associated with the matching prefix.
If no exact matching prefix is found, the returned vector will be empty.
Sourcepub fn lookup_longest(&self, prefix: IpNet) -> Vec<u32>
pub fn lookup_longest(&self, prefix: IpNet) -> Vec<u32>
Perform the longest prefix match (LPM) for the given IP prefix.
This method finds the most specific prefix in the trie that matches the given IP prefix. It returns a list of ASNs associated with the longest matching prefix, if any exists.
§Arguments
prefix
- AnIpNet
object representing the IP prefix to be matched.
§Returns
A Vec<u32>
containing ASNs associated with the longest matching prefix.
If no matching prefix is found, the returned vector will be empty.
Auto Trait Implementations§
impl Freeze for Pfx2as
impl RefUnwindSafe for Pfx2as
impl Send for Pfx2as
impl Sync for Pfx2as
impl Unpin for Pfx2as
impl UnwindSafe for Pfx2as
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
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