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