use super::validate_addressing; use super::{Dhcp4ConfigV1, Dhcp6ConfigV1, Result, Validate}; use crate::addressing::{RouteV1, StaticConfigV1}; use crate::net_config::devices::generate_addressing_validation; use serde::Deserialize; #[derive(Debug, Deserialize)] #[serde(deny_unknown_fields)] pub(crate) struct NetInterfaceV2 { // Use this interface as the primary interface for the system pub(crate) primary: Option, pub(crate) dhcp4: Option, pub(crate) dhcp6: Option, pub(crate) static4: Option, pub(crate) static6: Option, #[serde(rename = "route")] pub(crate) routes: Option>, } impl Validate for NetInterfaceV2 { fn validate(&self) -> Result<()> { validate_addressing(self) } } // Generate the traits for IP Address validation generate_addressing_validation!(&NetInterfaceV2);