#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub enum AdaptiveCoalescingConfiguration
{
#[allow(missing_docs)]
ReceiveOnly(AdaptiveCoalescingRateSampling),
#[allow(missing_docs)]
TransmitOnly(AdaptiveCoalescingRateSampling),
#[allow(missing_docs)]
ReceiveAndTransmit(AdaptiveCoalescingRateSampling),
}
impl AdaptiveCoalescingConfiguration
{
fn to_values(this: &Option<Self>) -> (Option<NonZeroU32>, u32, u32)
{
use self::AdaptiveCoalescingConfiguration::*;
match this
{
&None => (None, 0, 0),
&Some(this) =>
{
let (adaptive_coalescing_rate_sampling, use_adaptive_receive_coalesce, use_adaptive_transmit_coalesce) = match this
{
ReceiveOnly(adaptive_coalescing_rate_sampling) => (adaptive_coalescing_rate_sampling, true, false),
TransmitOnly(adaptive_coalescing_rate_sampling) => (adaptive_coalescing_rate_sampling, false, true),
ReceiveAndTransmit(adaptive_coalescing_rate_sampling) => (adaptive_coalescing_rate_sampling, true, true),
};
(adaptive_coalescing_rate_sampling.interval_in_seconds, use_adaptive_receive_coalesce as u32, use_adaptive_transmit_coalesce as u32)
},
}
}
}