toasty_core/stmt/
value_net.rs1use crate::stmt::Value;
2
3macro_rules! impl_net_conversions {
4 ($ty:ty, $name:ident, $lit:literal) => {
5 impl From<$ty> for Value {
6 fn from(value: $ty) -> Self {
7 Self::$name(value)
8 }
9 }
10
11 impl TryFrom<Value> for $ty {
12 type Error = crate::Error;
13
14 fn try_from(value: Value) -> Result<Self, Self::Error> {
15 match value {
16 Value::$name(value) => Ok(value),
17 _ => Err(crate::Error::type_conversion(value, $lit)),
18 }
19 }
20 }
21 };
22}
23
24impl_net_conversions!(cidr::IpCidr, Cidr, "cidr::IpCidr");
25impl_net_conversions!(cidr::IpInet, Inet, "cidr::IpInet");
26impl_net_conversions!(macaddr::MacAddr6, MacAddr, "macaddr::MacAddr6");
27impl_net_conversions!(macaddr::MacAddr8, MacAddr8, "macaddr::MacAddr8");