Skip to content

Commit

Permalink
chore: Derive default gor a bunch of types
Browse files Browse the repository at this point in the history
Which either (IMO) have a natural default, or that only consist of `Option`s.

This makes initialization of these types less verbose for the user.
  • Loading branch information
larseggert committed Jan 31, 2025
1 parent ad14c7c commit e19b3f0
Showing 1 changed file with 24 additions and 22 deletions.
46 changes: 24 additions & 22 deletions qlog/src/events/quic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ use super::Token;
use crate::HexSlice;
use crate::StatelessResetToken;

#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
#[serde(rename_all = "snake_case")]
pub enum PacketType {
Initial,
Expand All @@ -51,6 +51,7 @@ pub enum PacketType {

Retry,
VersionNegotiation,
#[default]
Unknown,
}

Expand All @@ -63,7 +64,7 @@ pub enum PacketNumberSpace {
}

#[serde_with::skip_serializing_none]
#[derive(Clone, Serialize, Deserialize, PartialEq, Eq, Debug)]
#[derive(Clone, Serialize, Deserialize, PartialEq, Eq, Debug, Default)]
pub struct PacketHeader {
pub packet_type: PacketType,
pub packet_number: Option<u64>,
Expand Down Expand Up @@ -347,7 +348,7 @@ pub enum AckedRanges {
Double(Vec<(u64, u64)>),
}

#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
#[serde(rename_all = "snake_case")]
pub enum QuicFrameTypeName {
Padding,
Expand All @@ -372,6 +373,7 @@ pub enum QuicFrameTypeName {
ApplicationClose,
HandshakeDone,
Datagram,
#[default]
Unknown,
}

Expand Down Expand Up @@ -526,23 +528,23 @@ pub struct PreferredAddress {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct VersionInformation {
pub server_versions: Option<Vec<Bytes>>,
pub client_versions: Option<Vec<Bytes>>,
pub chosen_version: Option<Bytes>,
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct AlpnInformation {
pub server_alpns: Option<Vec<Bytes>>,
pub client_alpns: Option<Vec<Bytes>>,
pub chosen_alpn: Option<Bytes>,
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct TransportParametersSet {
pub owner: Option<TransportOwner>,

Expand Down Expand Up @@ -582,7 +584,7 @@ pub struct UnknownTransportParameter {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct TransportParametersRestored {
pub disable_active_migration: Option<bool>,

Expand All @@ -599,7 +601,7 @@ pub struct TransportParametersRestored {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct DatagramsReceived {
pub count: Option<u16>,

Expand All @@ -609,7 +611,7 @@ pub struct DatagramsReceived {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct DatagramsSent {
pub count: Option<u16>,

Expand All @@ -619,13 +621,13 @@ pub struct DatagramsSent {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct DatagramDropped {
pub raw: Option<RawInfo>,
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct PacketReceived {
pub header: PacketHeader,
// `frames` is defined here in the QLog schema specification. However,
Expand All @@ -648,7 +650,7 @@ pub struct PacketReceived {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct PacketSent {
pub header: PacketHeader,
// `frames` is defined here in the QLog schema specification. However,
Expand All @@ -673,7 +675,7 @@ pub struct PacketSent {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct PacketDropped {
pub header: Option<PacketHeader>,

Expand All @@ -686,7 +688,7 @@ pub struct PacketDropped {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct PacketBuffered {
pub header: Option<PacketHeader>,

Expand All @@ -697,7 +699,7 @@ pub struct PacketBuffered {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct PacketsAcked {
pub packet_number_space: Option<PacketNumberSpace>,
pub packet_numbers: Option<Vec<u64>>,
Expand All @@ -716,15 +718,15 @@ pub struct StreamStateUpdated {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct FramesProcessed {
pub frames: Vec<QuicFrame>,

pub packet_number: Option<u64>,
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct DataMoved {
pub stream_id: Option<u64>,
pub offset: Option<u64>,
Expand All @@ -737,7 +739,7 @@ pub struct DataMoved {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct RecoveryParametersSet {
pub reordering_threshold: Option<u16>,
pub time_threshold: Option<f32>,
Expand All @@ -752,7 +754,7 @@ pub struct RecoveryParametersSet {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct MetricsUpdated {
pub min_rtt: Option<f32>,
pub smoothed_rtt: Option<f32>,
Expand All @@ -773,7 +775,7 @@ pub struct MetricsUpdated {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct CongestionStateUpdated {
pub old: Option<String>,
pub new: String,
Expand All @@ -793,7 +795,7 @@ pub struct LossTimerUpdated {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct PacketLost {
pub header: Option<PacketHeader>,

Expand All @@ -803,7 +805,7 @@ pub struct PacketLost {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug, Default)]
pub struct MarkedForRetransmit {
pub frames: Vec<QuicFrame>,
}
Expand Down

0 comments on commit e19b3f0

Please sign in to comment.