assemblyline_models/types/
ip.rs

1use struct_metadata::Described;
2
3use crate::ElasticMeta;
4
5
6
7// /// Validated ip type
8// #[derive(SerializeDisplay, DeserializeFromStr, Described, PartialEq, Eq, Debug, Clone)]
9// #[metadata_type(ElasticMeta)]
10// #[metadata(mapping="ip")]
11// pub struct IP(std::net::IpAddr);
12
13
14impl Described<ElasticMeta> for std::net::IpAddr {
15    fn metadata() -> struct_metadata::Descriptor<ElasticMeta> {
16        struct_metadata::Descriptor { 
17            docs: None, 
18            metadata: ElasticMeta {
19                mapping: Some("ip"),
20                ..Default::default()
21            }, 
22            kind: struct_metadata::Kind::String
23        }
24    }
25}
26
27// impl std::fmt::Display for IP {
28//     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29//         f.write_str(&self.0)
30//     }
31// }
32
33// impl FromStr for IP {
34//     type Err;
35
36//     fn from_str(s: &str) -> Result<Self, Self::Err> {
37//         todo!()
38//     }
39// }
40