#[derive(Debug, Clone)]
#[derive(Serialize, Deserialize)]
pub struct InternetProtocolVersion4OrVersion6OrBoth<A, B>
{
internet_protocol_version_4: Option<A>,
internet_protocol_version_6: Option<B>,
}
impl<A, B> InternetProtocolVersion4OrVersion6OrBoth<A, B>
{
#[inline(always)]
pub fn both(internet_protocol_version_4: A, internet_protocol_version_6: B) -> Self
{
Self
{
internet_protocol_version_4: Some(internet_protocol_version_4),
internet_protocol_version_6: Some(internet_protocol_version_6),
}
}
#[inline(always)]
pub fn only_internet_protocol_version_4(internet_protocol_version_4: A) -> Self
{
Self
{
internet_protocol_version_4: Some(internet_protocol_version_4),
internet_protocol_version_6: None,
}
}
#[inline(always)]
pub fn only_internet_protocol_version_6(internet_protocol_version_6: B) -> Self
{
Self
{
internet_protocol_version_4: None,
internet_protocol_version_6: Some(internet_protocol_version_6),
}
}
#[inline(always)]
pub fn internet_protocol_version_4(&self) -> Option<&A>
{
self.internet_protocol_version_4.as_ref()
}
#[inline(always)]
pub fn internet_protocol_version_6(&self) -> Option<&B>
{
self.internet_protocol_version_6.as_ref()
}
#[inline(always)]
pub fn has_internet_protocol_version_4(&self) -> bool
{
self.internet_protocol_version_4.is_some()
}
#[inline(always)]
pub fn has_internet_protocol_version_6(&self) -> bool
{
self.internet_protocol_version_6.is_some()
}
}