use super::status::IsRetired;
use s2n_quic_core::dc;
use std::{net::SocketAddr, sync::atomic::AtomicU64, time::Instant};
#[cfg_attr(not(test), allow(unused))]
pub(crate) trait SizeOf: Sized {
fn size(&self) -> usize {
assert!(
!std::mem::needs_drop::<Self>(),
"{:?} requires custom SizeOf impl",
std::any::type_name::<Self>()
);
std::mem::size_of::<Self>()
}
}
impl SizeOf for Instant {}
impl SizeOf for u32 {}
impl SizeOf for SocketAddr {}
impl SizeOf for AtomicU64 {}
impl SizeOf for IsRetired {}
impl SizeOf for dc::ApplicationParams {}