#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct InternetProtocolSocketSettings
{
#[serde(default = "InternetProtocolSocketSettings::send_buffer_size_default")] pub send_buffer_size: SendBufferSizeSocketOption,
#[serde(default = "InternetProtocolSocketSettings::receive_buffer_size_default")] pub receive_buffer_size: ReceiveBufferSizeSocketOption,
#[serde(default)] pub queuing_discipline_send_priority: QueuingDisciplineSendPriority,
#[serde(default)] pub busy_poll_microseconds: Option<BusyPollMicroseconds>,
}
impl Default for InternetProtocolSocketSettings
{
fn default() -> Self
{
Self
{
send_buffer_size: Self::send_buffer_size_default(),
receive_buffer_size: Self::receive_buffer_size_default(),
queuing_discipline_send_priority: QueuingDisciplineSendPriority::default(),
busy_poll_microseconds: None,
}
}
}
impl InternetProtocolSocketSettings
{
#[inline(always)]
const fn send_buffer_size_default() -> SendBufferSizeSocketOption
{
SendBufferSizeSocketOption
{
size: SendBufferSizeInBytes::UsualGlobalDefaultForTransmissionControlProtocol,
force: false,
}
}
#[inline(always)]
const fn receive_buffer_size_default() -> ReceiveBufferSizeSocketOption
{
ReceiveBufferSizeSocketOption
{
size: ReceiveBufferSizeInBytes::UsualGlobalDefaultForTransmissionControlProtocol,
force: false,
}
}
}