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