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: &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§

source

fn encode_header<E: Encoder>( &self, packet_number_len: PacketNumberLen, encoder: &mut E )

Encodes the current packet’s header into the provided encoder

source

fn payload(&mut self) -> &mut Payload

Returns the payload for the current packet

source

fn packet_number(&self) -> PacketNumber

Returns the packet number for the current packet

Provided Methods§

source

fn encode_packet<'a>( self, key: &K, header_key: &H, largest_acknowledged_packet_number: PacketNumber, min_packet_len: Option<usize>, buffer: EncoderBuffer<'a> ) -> Result<(ProtectedPayload<'a>, EncoderBuffer<'a>), PacketEncodingError<'a>>

Implementors§

source§

impl<DCID: EncoderValue, Payload: PacketPayloadEncoder, K: OneRttKey, H: OneRttHeaderKey> PacketEncoder<K, H, Payload> for Short<DCID, KeyPhase, PacketNumber, Payload>

source§

impl<DCID: EncoderValue, SCID: EncoderValue, Payload: PacketPayloadEncoder, K: HandshakeKey, H: HandshakeHeaderKey> PacketEncoder<K, H, Payload> for Handshake<DCID, SCID, PacketNumber, Payload>

§

type PayloadLenCursor = LongPayloadLenCursor

source§

impl<DCID: EncoderValue, SCID: EncoderValue, Payload: PacketPayloadEncoder, K: ZeroRttKey, H: ZeroRttHeaderKey> PacketEncoder<K, H, Payload> for ZeroRtt<DCID, SCID, PacketNumber, Payload>

§

type PayloadLenCursor = LongPayloadLenCursor

source§

impl<DCID: EncoderValue, SCID: EncoderValue, Token: EncoderValue, Payload: PacketPayloadEncoder, K: InitialKey, H: InitialHeaderKey> PacketEncoder<K, H, Payload> for Initial<DCID, SCID, Token, PacketNumber, Payload>

§

type PayloadLenCursor = LongPayloadLenCursor