use yaserde_derive::{YaDeserialize, YaSerialize}; #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[yaserde(rename = "opnsense")] pub struct OPNsense { #[yaserde(rename = "dhcpd")] pub dhcpd: Dhcpd, // Add other top-level elements as needed } #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] pub struct Dhcpd { #[yaserde(rename = "lan")] pub lan: DhcpInterface, // Add other interfaces as needed } #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] pub struct DhcpInterface { #[yaserde(rename = "enable")] pub enable: bool, #[yaserde(rename = "range")] pub range: DhcpRange, #[yaserde(rename = "staticmap")] pub staticmaps: Vec, } #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] pub struct DhcpRange { #[yaserde(rename = "from")] pub from: String, #[yaserde(rename = "to")] pub to: String, } #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] pub struct StaticMap { #[yaserde(rename = "mac")] pub mac: String, #[yaserde(rename = "ipaddr")] pub ipaddr: String, #[yaserde(rename = "hostname")] pub hostname: String, }