1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use serde::Deserialize;
use std::fmt;
#[derive(Clone, Deserialize, Debug)]
pub struct Oui {
pub oui: u64,
pub owner: String,
pub nonce: u64,
pub addresses: Vec<String>,
pub subnets: Vec<Subnet>,
}
#[derive(Clone, Deserialize, Debug)]
pub struct OuiStats {
pub count: u64,
}
#[derive(Clone, Deserialize, Debug)]
pub struct Subnet {
base: u32,
mask: u32,
}
impl fmt::Display for Subnet {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_fmt(format_args!("{}/{}", self.base, self.mask))
}
}