use yaserde::{MaybeString, RawXml}; use yaserde_derive::{YaDeserialize, YaSerialize}; // This is the top-level struct that represents the entire element. #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] pub struct DnsMasq { #[yaserde(attribute = true)] pub version: String, #[yaserde(attribute = true)] pub persisted_at: Option, pub enable: u8, pub regdhcp: u8, pub regdhcpstatic: u8, pub dhcpfirst: u8, pub strict_order: u8, pub domain_needed: u8, pub no_private_reverse: u8, pub no_resolv: Option, pub log_queries: u8, pub no_hosts: u8, pub strictbind: u8, pub dnssec: u8, pub regdhcpdomain: MaybeString, pub interface: Option, pub port: Option, pub dns_forward_max: MaybeString, pub cache_size: MaybeString, pub local_ttl: MaybeString, pub add_mac: Option, pub add_subnet: Option, pub strip_subnet: Option, pub no_ident: Option, pub dhcp: Option, pub dhcp_ranges: Vec, pub dhcp_options: Vec, pub dhcp_boot: Vec, pub dhcp_tags: Vec, } // Represents the element and its nested fields. #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[yaserde(rename = "dhcp")] pub struct Dhcp { pub no_interface: MaybeString, pub fqdn: u8, pub domain: MaybeString, pub local: Option, pub lease_max: MaybeString, pub authoritative: u8, pub default_fw_rules: u8, pub reply_delay: MaybeString, pub enable_ra: u8, pub nosync: u8, } // Represents a single element. #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[yaserde(rename = "dhcp_ranges")] pub struct DhcpRange { #[yaserde(attribute = true)] pub uuid: String, pub interface: String, pub set_tag: MaybeString, pub start_addr: String, pub end_addr: String, pub subnet_mask: MaybeString, pub constructor: MaybeString, pub mode: MaybeString, pub prefix_len: MaybeString, pub lease_time: MaybeString, pub domain_type: String, pub domain: MaybeString, pub nosync: u8, pub ra_mode: MaybeString, pub ra_priority: MaybeString, pub ra_mtu: MaybeString, pub ra_interval: MaybeString, pub ra_router_lifetime: MaybeString, pub description: MaybeString, } // Represents a single element. #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[yaserde(rename = "dhcp_boot")] pub struct DhcpBoot { #[yaserde(attribute = true)] pub uuid: String, pub interface: MaybeString, pub tag: MaybeString, pub filename: Option, pub servername: String, pub address: String, pub description: Option, } // Represents a single element. #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[yaserde(rename = "dhcp_options")] pub struct DhcpOptions { #[yaserde(attribute = true)] pub uuid: String, #[yaserde(rename = "type")] pub _type: String, pub option: MaybeString, pub option6: MaybeString, pub interface: MaybeString, pub tag: MaybeString, pub set_tag: MaybeString, pub value: String, pub force: Option, pub description: MaybeString, }