pub trait PacketEncoder<K: CryptoKey, H: HeaderKey, Payload: PacketPayloadEncoder>: Sized {
type PayloadLenCursor: PacketPayloadLenCursor;
// Required methods
fn encode_header<E: Encoder>(
&self,
packet_number_len: PacketNumberLen,
encoder: &mut E,
);
fn payload(&mut self) -> &mut Payload;
fn packet_number(&self) -> PacketNumber;
// Provided method
fn encode_packet<'a>(
self,
key: &mut K,
header_key: &H,
largest_acknowledged_packet_number: PacketNumber,
min_packet_len: Option<usize>,
buffer: EncoderBuffer<'a>,
) -> Result<(ProtectedPayload<'a>, EncoderBuffer<'a>), PacketEncodingError<'a>> { ... }
}Required Associated Types§
Required Methods§
Sourcefn encode_header<E: Encoder>(
&self,
packet_number_len: PacketNumberLen,
encoder: &mut E,
)
fn encode_header<E: Encoder>( &self, packet_number_len: PacketNumberLen, encoder: &mut E, )
Encodes the current packet’s header into the provided encoder
Sourcefn payload(&mut self) -> &mut Payload
fn payload(&mut self) -> &mut Payload
Returns the payload for the current packet
Sourcefn packet_number(&self) -> PacketNumber
fn packet_number(&self) -> PacketNumber
Returns the packet number for the current packet
Provided Methods§
fn encode_packet<'a>( self, key: &mut K, header_key: &H, largest_acknowledged_packet_number: PacketNumber, min_packet_len: Option<usize>, buffer: EncoderBuffer<'a>, ) -> Result<(ProtectedPayload<'a>, EncoderBuffer<'a>), PacketEncodingError<'a>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.