EncoderValue

Trait EncoderValue 

Source
pub trait EncoderValue: Sized {
    // Required method
    fn encode<E>(&self, encoder: &mut E)
       where E: Encoder;

    // Provided methods
    fn encode_mut<E>(&mut self, encoder: &mut E)
       where E: Encoder { ... }
    fn encoding_size(&self) -> usize { ... }
    fn encoding_size_for_encoder<E>(&self, encoder: &E) -> usize
       where E: Encoder { ... }
    fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
       where Len: TryFrom<usize> + EncoderValue,
             E: Encoder,
             Self: Sized,
             <Len as TryFrom<usize>>::Error: Debug { ... }
    fn encode_to_vec(&self) -> Vec<u8>  { ... }
}

Required Methods§

Source

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Encodes the value into the encoder

Provided Methods§

Source

fn encode_mut<E>(&mut self, encoder: &mut E)
where E: Encoder,

Encodes the value into the encoder, while potentially mutating the value itself

Source

fn encoding_size(&self) -> usize

Returns the encoding size with no buffer constrains

Source

fn encoding_size_for_encoder<E>(&self, encoder: &E) -> usize
where E: Encoder,

Returns the encoding size for the given encoder’s capacity

Source

fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
where Len: TryFrom<usize> + EncoderValue, E: Encoder, Self: Sized, <Len as TryFrom<usize>>::Error: Debug,

Encodes the value into the encoder with a prefix of Len

Source

fn encode_to_vec(&self) -> Vec<u8>

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.

Implementations on Foreign Types§

Source§

impl EncoderValue for &[&[u8]]

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for &[u8]

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for &mut [u8]

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for f32

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for f64

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for i8

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for i16

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for i32

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for i64

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for i128

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for u8

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for u16

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for u32

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for u64

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for u128

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl EncoderValue for ()

Source§

fn encode<E>(&self, _encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, _encoder: &E) -> usize
where E: Encoder,

Source§

impl<A, B> EncoderValue for (A, B)

Source§

fn encode<E>(&self, encoder: &mut E)
where E: Encoder,

Source§

fn encoding_size(&self) -> usize

Source§

fn encoding_size_for_encoder<E>(&self, encoder: &E) -> usize
where E: Encoder,

Source§

impl<T> EncoderValue for Option<T>
where T: EncoderValue,

Source§

fn encode<E>(&self, buffer: &mut E)
where E: Encoder,

Source§

fn encode_mut<E>(&mut self, buffer: &mut E)
where E: Encoder,

Implementors§

Source§

impl EncoderValue for InitialId

Source§

impl EncoderValue for LocalId

Source§

impl EncoderValue for PeerId

Source§

impl EncoderValue for UnboundedId

Source§

impl EncoderValue for HandshakeHeader

Source§

impl EncoderValue for EcnCounts

Source§

impl EncoderValue for ConnectionClose<'_>

Source§

impl EncoderValue for DataBlocked

Source§

impl EncoderValue for DcStatelessResetTokens<'_>

Source§

impl EncoderValue for HandshakeDone

Source§

impl EncoderValue for MaxData

Source§

impl EncoderValue for MaxStreamData

Source§

impl EncoderValue for MaxStreams

Source§

impl EncoderValue for NewConnectionId<'_>

Source§

impl EncoderValue for NewToken<'_>

Source§

impl EncoderValue for Padding

Source§

impl EncoderValue for PathChallenge<'_>

Source§

impl EncoderValue for PathResponse<'_>

Source§

impl EncoderValue for Ping

Source§

impl EncoderValue for ResetStream

Source§

impl EncoderValue for RetireConnectionId

Source§

impl EncoderValue for StopSending

Source§

impl EncoderValue for StreamDataBlocked

Source§

impl EncoderValue for StreamsBlocked

Source§

impl EncoderValue for EtherType

Source§

impl EncoderValue for s2n_quic_core::inet::ethernet::Header

Source§

impl EncoderValue for MacAddress

Source§

impl EncoderValue for Protocol

Source§

impl EncoderValue for FlagFragment

Source§

impl EncoderValue for s2n_quic_core::inet::ipv4::Header

Source§

impl EncoderValue for IpV4Address

Source§

impl EncoderValue for SocketAddressV4

Source§

impl EncoderValue for Tos
where Tos: IntoBytes,

Source§

impl EncoderValue for Vihl
where Vihl: IntoBytes,

Source§

impl EncoderValue for s2n_quic_core::inet::ipv6::Header

Source§

impl EncoderValue for IpV6Address

Source§

impl EncoderValue for SocketAddressV6

Source§

impl EncoderValue for Vtcfl

Source§

impl EncoderValue for s2n_quic_core::inet::udp::Header

Source§

impl EncoderValue for DecoderBufferMut<'_>

Source§

impl EncoderValue for TruncatedPacketNumber

Source§

impl EncoderValue for PseudoRetry<'_>

Source§

impl EncoderValue for Retry<'_>

Source§

impl EncoderValue for Token

Source§

impl EncoderValue for DcSupportedVersions

Source§

impl EncoderValue for InitialSourceConnectionId

Source§

impl EncoderValue for OriginalDestinationConnectionId

Source§

impl EncoderValue for PreferredAddress

Source§

impl EncoderValue for RetrySourceConnectionId

Source§

impl EncoderValue for VarInt

Source§

impl EncoderValue for DecoderBuffer<'_>

Source§

impl EncoderValue for i24

Source§

impl EncoderValue for i48

Source§

impl EncoderValue for u24

Source§

impl EncoderValue for u48

Source§

impl EncoderValue for I16
where I16: IntoBytes,

Source§

impl EncoderValue for I32
where I32: IntoBytes,

Source§

impl EncoderValue for I64
where I64: IntoBytes,

Source§

impl EncoderValue for I128
where I128: IntoBytes,

Source§

impl EncoderValue for U16
where U16: IntoBytes,

Source§

impl EncoderValue for U32
where U32: IntoBytes,

Source§

impl EncoderValue for U64
where U64: IntoBytes,

Source§

impl EncoderValue for U128
where U128: IntoBytes,

Source§

impl<'a> EncoderValue for &'a HandshakeHeader

Source§

impl<'a> EncoderValue for &'a EtherType

Source§

impl<'a> EncoderValue for &'a s2n_quic_core::inet::ethernet::Header

Source§

impl<'a> EncoderValue for &'a MacAddress

Source§

impl<'a> EncoderValue for &'a Protocol

Source§

impl<'a> EncoderValue for &'a FlagFragment

Source§

impl<'a> EncoderValue for &'a s2n_quic_core::inet::ipv4::Header

Source§

impl<'a> EncoderValue for &'a IpV4Address

Source§

impl<'a> EncoderValue for &'a SocketAddressV4

Source§

impl<'a> EncoderValue for &'a Tos
where Tos: IntoBytes,

Source§

impl<'a> EncoderValue for &'a Vihl
where Vihl: IntoBytes,

Source§

impl<'a> EncoderValue for &'a s2n_quic_core::inet::ipv6::Header

Source§

impl<'a> EncoderValue for &'a IpV6Address

Source§

impl<'a> EncoderValue for &'a SocketAddressV6

Source§

impl<'a> EncoderValue for &'a Vtcfl

Source§

impl<'a> EncoderValue for &'a s2n_quic_core::inet::udp::Header

Source§

impl<'a> EncoderValue for &'a I16
where I16: IntoBytes,

Source§

impl<'a> EncoderValue for &'a I32
where I32: IntoBytes,

Source§

impl<'a> EncoderValue for &'a I64
where I64: IntoBytes,

Source§

impl<'a> EncoderValue for &'a I128
where I128: IntoBytes,

Source§

impl<'a> EncoderValue for &'a U16
where U16: IntoBytes,

Source§

impl<'a> EncoderValue for &'a U32
where U32: IntoBytes,

Source§

impl<'a> EncoderValue for &'a U64
where U64: IntoBytes,

Source§

impl<'a> EncoderValue for &'a U128
where U128: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut HandshakeHeader

Source§

impl<'a> EncoderValue for &'a mut EtherType

Source§

impl<'a> EncoderValue for &'a mut s2n_quic_core::inet::ethernet::Header

Source§

impl<'a> EncoderValue for &'a mut MacAddress

Source§

impl<'a> EncoderValue for &'a mut Protocol

Source§

impl<'a> EncoderValue for &'a mut FlagFragment

Source§

impl<'a> EncoderValue for &'a mut s2n_quic_core::inet::ipv4::Header

Source§

impl<'a> EncoderValue for &'a mut IpV4Address

Source§

impl<'a> EncoderValue for &'a mut SocketAddressV4

Source§

impl<'a> EncoderValue for &'a mut Tos
where Tos: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut Vihl
where Vihl: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut s2n_quic_core::inet::ipv6::Header

Source§

impl<'a> EncoderValue for &'a mut IpV6Address

Source§

impl<'a> EncoderValue for &'a mut SocketAddressV6

Source§

impl<'a> EncoderValue for &'a mut Vtcfl

Source§

impl<'a> EncoderValue for &'a mut s2n_quic_core::inet::udp::Header

Source§

impl<'a> EncoderValue for &'a mut I16
where I16: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut I32
where I32: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut I64
where I64: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut I128
where I128: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut U16
where U16: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut U32
where U32: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut U64
where U64: IntoBytes,

Source§

impl<'a> EncoderValue for &'a mut U128
where U128: IntoBytes,

Source§

impl<'a, AckRanges: AckRanges, Data: EncoderValue> EncoderValue for Frame<'a, AckRanges, Data>

Source§

impl<A: AckRanges> EncoderValue for Ack<A>

Source§

impl<DCID: EncoderValue, Payload: EncoderValue> EncoderValue for Short<DCID, KeyPhase, TruncatedPacketNumber, Payload>

Source§

impl<DCID: EncoderValue, SCID: EncoderValue, Payload: EncoderValue> EncoderValue for Handshake<DCID, SCID, TruncatedPacketNumber, Payload>

Source§

impl<DCID: EncoderValue, SCID: EncoderValue, Payload: EncoderValue> EncoderValue for ZeroRtt<DCID, SCID, TruncatedPacketNumber, Payload>

Source§

impl<DCID: EncoderValue, SCID: EncoderValue, Token: EncoderValue, Payload: EncoderValue> EncoderValue for Initial<DCID, SCID, Token, TruncatedPacketNumber, Payload>

Source§

impl<Data: EncoderValue> EncoderValue for Crypto<Data>

Source§

impl<Data: EncoderValue> EncoderValue for Datagram<Data>

Source§

impl<Data: EncoderValue> EncoderValue for Stream<Data>

Source§

impl<OriginalDestinationConnectionId, StatelessResetToken, PreferredAddress, RetrySourceConnectionId> EncoderValue for TransportParameters<OriginalDestinationConnectionId, StatelessResetToken, PreferredAddress, RetrySourceConnectionId>
where OriginalDestinationConnectionId: TransportParameter, OriginalDestinationConnectionId::CodecValue: EncoderValue, StatelessResetToken: TransportParameter, StatelessResetToken::CodecValue: EncoderValue, PreferredAddress: TransportParameter, PreferredAddress::CodecValue: EncoderValue, RetrySourceConnectionId: TransportParameter, RetrySourceConnectionId::CodecValue: EncoderValue,

Source§

impl<SupportedVersions: EncoderValue> EncoderValue for VersionNegotiation<'_, SupportedVersions>