Skip to main content

Codec

Trait Codec 

Source
pub trait Codec<C = ()>: Sized {
    // Required methods
    fn encode<W: BufMut>(
        &self,
        writer: &mut Cursor<W>,
        context: C,
    ) -> BufResult<()>;
    fn decode<R: Buf>(reader: &mut Cursor<R>, context: C) -> BufResult<Self>;
}
Expand description

A Codec trait provides encoding and decoding.

Required Methods§

Source

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, context: C) -> BufResult<()>

Encodes self using writer and returns () or BufError if error.

Source

fn decode<R: Buf>(reader: &mut Cursor<R>, context: C) -> BufResult<Self>

Decodes bytes from reader and returns Self or BufError if error.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Codec for u8

Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Source§

impl Codec for u16

Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Source§

impl Codec for u32

Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Source§

impl Codec for u64

Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Source§

impl<T: Codec> Codec for Vec<T>

Available on crate feature alloc only.
Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Source§

impl<T: Codec> Codec<usize> for Vec<T>

Available on crate feature alloc only.
Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: usize) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, to_decode: usize) -> BufResult<Self>

Source§

impl<const N: usize> Codec for [u8; N]

Source§

fn encode<W: BufMut>(&self, writer: &mut Cursor<W>, _: ()) -> BufResult<()>

Source§

fn decode<R: Buf>(reader: &mut Cursor<R>, _: ()) -> BufResult<Self>

Implementors§

Source§

impl Codec for AckDelayExponent

Source§

impl Codec for AckFrame

Source§

impl Codec for AckRange

Source§

impl Codec for ActiveConnectionIdLimit

Source§

impl Codec for AdditionalPayloadChecksum

Source§

impl Codec for internet::ieee::ethernet::Address

Source§

impl Codec for internet::ietf::ipv4::Address

Source§

impl Codec for internet::ietf::ipv6::Address

Source§

impl Codec for internet::ietf::tls1_0::Alert

Source§

impl Codec for internet::ietf::tls1_1::Alert

Source§

impl Codec for internet::ietf::tls1_2::Alert

Source§

impl Codec for internet::ietf::tls1_3::Alert

Source§

impl Codec for internet::ietf::tls1_0::AlertDescription

Source§

impl Codec for internet::ietf::tls1_1::AlertDescription

Source§

impl Codec for internet::ietf::tls1_2::AlertDescription

Source§

impl Codec for internet::ietf::tls1_3::AlertDescription

Source§

impl Codec for internet::ietf::tls1_0::AlertLevel

Source§

impl Codec for internet::ietf::tls1_1::AlertLevel

Source§

impl Codec for internet::ietf::tls1_2::AlertLevel

Source§

impl Codec for internet::ietf::tls1_3::AlertLevel

Source§

impl Codec for ApplicationLayerProtocolNegotiation

Source§

impl Codec for internet::ietf::tls1_0::Asn1Cert

Source§

impl Codec for internet::ietf::tls1_1::Asn1Cert

Source§

impl Codec for internet::ietf::tls1_2::Asn1Cert

Source§

impl Codec for internet::ietf::tls1_0::Certificate

Source§

impl Codec for internet::ietf::tls1_1::Certificate

Source§

impl Codec for internet::ietf::tls1_2::Certificate

Source§

impl Codec for internet::ietf::tls1_3::Certificate

Source§

impl Codec for CertificateAuthorities

Source§

impl Codec for CertificateEntry

Source§

impl Codec for internet::ietf::tls1_0::CertificateRequest

Source§

impl Codec for internet::ietf::tls1_1::CertificateRequest

Source§

impl Codec for internet::ietf::tls1_2::CertificateRequest

Source§

impl Codec for internet::ietf::tls1_3::CertificateRequest

Source§

impl Codec for internet::ietf::tls1_0::CertificateVerify

Source§

impl Codec for internet::ietf::tls1_1::CertificateVerify

Source§

impl Codec for internet::ietf::tls1_2::CertificateVerify

Source§

impl Codec for internet::ietf::tls1_3::CertificateVerify

Source§

impl Codec for ChangeCipherSpec

Source§

impl Codec for ChangeCipherSpecType

Source§

impl Codec for internet::ietf::tcp::Checksum

Source§

impl Codec for internet::ietf::udp::Checksum

Source§

impl Codec for internet::ietf::igmp::Checksum

Source§

impl Codec for internet::ietf::icmpv4::Checksum

Source§

impl Codec for internet::ietf::icmpv6::Checksum

Source§

impl Codec for internet::ietf::ipv4::Checksum

Source§

impl Codec for internet::ietf::tls1_0::CipherSuite

Source§

impl Codec for internet::ietf::tls1_1::CipherSuite

Source§

impl Codec for internet::ietf::tls1_2::CipherSuite

Source§

impl Codec for internet::ietf::tls1_3::CipherSuite

Source§

impl Codec for internet::ietf::tls1_0::ClientCertificateType

Source§

impl Codec for internet::ietf::tls1_1::ClientCertificateType

Source§

impl Codec for internet::ietf::tls1_2::ClientCertificateType

Source§

impl Codec for internet::ietf::tls1_3::ClientCertificateType

Source§

impl Codec for internet::ietf::tls1_0::ClientHello

Source§

impl Codec for internet::ietf::tls1_1::ClientHello

Source§

impl Codec for internet::ietf::tls1_2::ClientHello

Source§

impl Codec for internet::ietf::tls1_3::ClientHello

Source§

impl Codec for internet::ietf::tls1_0::CompressionMethod

Source§

impl Codec for internet::ietf::tls1_1::CompressionMethod

Source§

impl Codec for internet::ietf::tls1_2::CompressionMethod

Source§

impl Codec for ConnectionCloseFrame

Source§

impl Codec for internet::ietf::quic::ConnectionId

Source§

impl Codec for internet::ietf::quicv1::ConnectionId

Source§

impl Codec for ContentType

Source§

impl Codec for CryptoFrame

Source§

impl Codec for DataBlockedFrame

Source§

impl Codec for DestinationOptionsHeader

Source§

impl Codec for internet::ietf::icmpv4::DestinationUnreachable

Source§

impl Codec for internet::ietf::icmpv6::DestinationUnreachable

Source§

impl Codec for internet::ietf::icmpv4::DestinationUnreachableCode

Source§

impl Codec for internet::ietf::icmpv6::DestinationUnreachableCode

Source§

impl Codec for DisableActiveMigration

Source§

impl Codec for internet::ietf::tls1_0::DistinguishedName

Source§

impl Codec for internet::ietf::tls1_1::DistinguishedName

Source§

impl Codec for internet::ietf::tls1_2::DistinguishedName

Source§

impl Codec for EarlyData

Source§

impl Codec for Echo

Source§

impl Codec for internet::ietf::icmpv4::EchoReply

Source§

impl Codec for internet::ietf::icmpv6::EchoReply

Source§

impl Codec for internet::ietf::udp::EchoRequest

Source§

impl Codec for internet::ietf::icmpv6::EchoRequest

Source§

impl Codec for EchoResponse

Source§

impl Codec for EcnCounts

Source§

impl Codec for EncryptedExtensions

Source§

impl Codec for EndOfEarlyData

Source§

impl Codec for internet::ietf::tcp::EndOfOptionList

Source§

impl Codec for internet::ietf::ipv4::EndOfOptionList

Source§

impl Codec for EndOfOptionsList

Source§

impl Codec for EtherType

Source§

impl Codec for Extension

Source§

impl Codec for ExtensionType

Source§

impl Codec for internet::ietf::tls1_0::Finished

Source§

impl Codec for internet::ietf::tls1_1::Finished

Source§

impl Codec for internet::ietf::tls1_2::Finished

Source§

impl Codec for internet::ietf::tls1_3::Finished

Source§

impl Codec for FixedBit

Source§

impl Codec for FlowLabel

Source§

impl Codec for FragmentHeader

Source§

impl Codec for Fragmentation

Source§

impl Codec for FrameType

Source§

impl Codec for GroupRecord

Source§

impl Codec for internet::ietf::tls1_0::Handshake

Source§

impl Codec for internet::ietf::tls1_1::Handshake

Source§

impl Codec for internet::ietf::tls1_2::Handshake

Source§

impl Codec for internet::ietf::tls1_3::Handshake

Source§

impl Codec for HandshakeDoneFrame

Source§

impl Codec for internet::ietf::quicv1::HandshakePacket

Source§

impl Codec for internet::ietf::quicv2::HandshakePacket

Source§

impl Codec for internet::ietf::tls1_0::HandshakeType

Source§

impl Codec for internet::ietf::tls1_1::HandshakeType

Source§

impl Codec for internet::ietf::tls1_2::HandshakeType

Source§

impl Codec for internet::ietf::tls1_3::HandshakeType

Source§

impl Codec for internet::ieee::ethernet::Header

Source§

impl Codec for internet::ietf::tcp::Header

Source§

impl Codec for internet::ietf::udp::Header

Source§

impl Codec for internet::ietf::ipv4::Header

Source§

impl Codec for internet::ietf::ipv6::Header

Source§

impl Codec for HeaderForm

Source§

impl Codec for Heartbeat

Source§

impl Codec for internet::ietf::tls1_0::HelloRequest

Source§

impl Codec for internet::ietf::tls1_1::HelloRequest

Source§

impl Codec for internet::ietf::tls1_2::HelloRequest

Source§

impl Codec for HopByHopOptionsHeader

Source§

impl Codec for InformationReply

Source§

impl Codec for InformationRequest

Source§

impl Codec for InitialMaxData

Source§

impl Codec for InitialMaxStreamDataBidiLocal

Source§

impl Codec for InitialMaxStreamDataBidiRemote

Source§

impl Codec for InitialMaxStreamDataUni

Source§

impl Codec for InitialMaxStreamsBidi

Source§

impl Codec for InitialMaxStreamsUni

Source§

impl Codec for internet::ietf::quicv1::InitialPacket

Source§

impl Codec for internet::ietf::quicv2::InitialPacket

Source§

impl Codec for InitialSourceConnectionId

Source§

impl Codec for InternetTimestamp

Source§

impl Codec for internet::ietf::tls1_0::KeyExchangeAlgorithm

Source§

impl Codec for internet::ietf::tls1_1::KeyExchangeAlgorithm

Source§

impl Codec for internet::ietf::tls1_2::KeyExchangeAlgorithm

Source§

impl Codec for KeyPhase

Source§

impl Codec for KeyShare

Source§

impl Codec for KeyShareEntry

Source§

impl Codec for KeyUpdate

Source§

impl Codec for KeyUpdateRequest

Source§

impl Codec for internet::ietf::tcp::Kind

Source§

impl Codec for internet::ietf::udp::Kind

Source§

impl Codec for LeaveGroup

Source§

impl Codec for Length

Source§

impl Codec for internet::ietf::quicv1::LongHeaderPacketType

Source§

impl Codec for internet::ietf::quicv2::LongHeaderPacketType

Source§

impl Codec for LooseSourceRoute

Source§

impl Codec for MaxAckDelay

Source§

impl Codec for MaxDataFrame

Source§

impl Codec for MaxFragmentLength

Source§

impl Codec for MaxIdleTimeout

Source§

impl Codec for MaxStreamDataFrame

Source§

impl Codec for MaxStreamsFrame

Source§

impl Codec for MaxUdpPayloadSize

Source§

impl Codec for MaximumDatagramSize

Source§

impl Codec for MaximumReassembledDatagramSize

Source§

impl Codec for MaximumSegmentSize

Source§

impl Codec for Md5Signature

Source§

impl Codec for internet::ietf::icmpv4::Message

Source§

impl Codec for internet::ietf::icmpv6::Message

Source§

impl Codec for NamedGroup

Source§

impl Codec for NewConnectionIdFrame

Source§

impl Codec for NewSessionTicket

Source§

impl Codec for NewTokenFrame

Source§

impl Codec for internet::ietf::icmpv4::NoCode

Source§

impl Codec for internet::ietf::icmpv6::NoCode

Source§

impl Codec for internet::ietf::tcp::NoOperation

Source§

impl Codec for internet::ietf::udp::NoOperation

Source§

impl Codec for internet::ietf::ipv4::NoOperation

Source§

impl Codec for OidFilter

Source§

impl Codec for OidFilters

Source§

impl Codec for internet::ietf::tcp::Option

Source§

impl Codec for internet::ietf::udp::Option

Source§

impl Codec for internet::ietf::ipv4::Option

Source§

impl Codec for OriginalDestinationConnectionId

Source§

impl Codec for PacketNumberLength

Source§

impl Codec for PacketTooBig

Source§

impl Codec for Padding

Source§

impl Codec for PaddingFrame

Source§

impl Codec for internet::ietf::icmpv4::ParameterProblem

Source§

impl Codec for internet::ietf::icmpv6::ParameterProblem

Source§

impl Codec for ParameterProblemCode

Source§

impl Codec for PathChallengeFrame

Source§

impl Codec for PathResponseFrame

Source§

impl Codec for PingFrame

Source§

impl Codec for internet::ietf::tcp::Port

Source§

impl Codec for internet::ietf::udp::Port

Source§

impl Codec for internet::ietf::transport::Port

Source§

impl Codec for PostHandshakeAuth

Source§

impl Codec for PreSharedKey

Source§

impl Codec for PreferredAddress

Source§

impl Codec for Protocol

Source§

impl Codec for ProtocolVersion

Source§

impl Codec for PskIdentity

Source§

impl Codec for PskKeyExchangeModes

Source§

impl Codec for internet::ietf::igmpv1::Query

Source§

impl Codec for internet::ietf::igmpv2::Query

Source§

impl Codec for internet::ietf::igmpv3::Query

Source§

impl Codec for internet::ietf::tls1_0::Random

Source§

impl Codec for internet::ietf::tls1_1::Random

Source§

impl Codec for internet::ietf::tls1_2::Random

Source§

impl Codec for internet::ietf::tls1_3::Random

Source§

impl Codec for RecordRoute

Source§

impl Codec for RecordType

Source§

impl Codec for Redirect

Source§

impl Codec for RedirectCode

Source§

impl Codec for internet::ietf::igmpv1::Report

Source§

impl Codec for internet::ietf::igmpv2::Report

Source§

impl Codec for internet::ietf::igmpv3::Report

Source§

impl Codec for ResetStreamFrame

Source§

impl Codec for RetireConnectionIdFrame

Source§

impl Codec for internet::ietf::quicv1::RetryIntegrityTag

Source§

impl Codec for internet::ietf::quicv2::RetryIntegrityTag

Source§

impl Codec for internet::ietf::quicv1::RetryPacket

Source§

impl Codec for internet::ietf::quicv2::RetryPacket

Source§

impl Codec for RetrySourceConnectionId

Source§

impl Codec for RetryToken

Source§

impl Codec for RouterAlert

Source§

impl Codec for RoutingHeader

Source§

impl Codec for Sack

Source§

impl Codec for SackBlock

Source§

impl Codec for SackPermitted

Source§

impl Codec for Security

Source§

impl Codec for ServerCertificateType

Source§

impl Codec for internet::ietf::tls1_0::ServerHello

Source§

impl Codec for internet::ietf::tls1_1::ServerHello

Source§

impl Codec for internet::ietf::tls1_2::ServerHello

Source§

impl Codec for internet::ietf::tls1_3::ServerHello

Source§

impl Codec for internet::ietf::tls1_0::ServerHelloDone

Source§

impl Codec for internet::ietf::tls1_1::ServerHelloDone

Source§

impl Codec for internet::ietf::tls1_2::ServerHelloDone

Source§

impl Codec for ServerName

Source§

impl Codec for ServerNameEntry

Source§

impl Codec for internet::ietf::tls1_0::SessionId

Source§

impl Codec for internet::ietf::tls1_1::SessionId

Source§

impl Codec for internet::ietf::tls1_2::SessionId

Source§

impl Codec for internet::ietf::tls1_0::Signature

Source§

impl Codec for internet::ietf::tls1_1::Signature

Source§

impl Codec for internet::ietf::tls1_2::Signature

Source§

impl Codec for internet::ietf::tls1_0::SignatureAlgorithm

Source§

impl Codec for internet::ietf::tls1_1::SignatureAlgorithm

Source§

impl Codec for internet::ietf::tls1_2::SignatureAlgorithm

Source§

impl Codec for SignatureAlgorithms

Source§

impl Codec for SignatureAlgorithmsCert

Source§

impl Codec for SignatureScheme

Source§

impl Codec for SignedCertificateTimestamp

Source§

impl Codec for SourceQuench

Source§

impl Codec for SpinBit

Source§

impl Codec for StatelessResetToken

Source§

impl Codec for StatusRequest

Source§

impl Codec for StopSendingFrame

Source§

impl Codec for StreamDataBlockedFrame

Source§

impl Codec for StreamFrame

Source§

impl Codec for internet::ietf::quicv1::StreamId

Source§

impl Codec for internet::ietf::ipv4::StreamId

Source§

impl Codec for StreamType

Source§

impl Codec for StreamsBlockedFrame

Source§

impl Codec for StrictSourceRoute

Source§

impl Codec for SupportedGroups

Source§

impl Codec for SupportedVersions

Source§

impl Codec for internet::ietf::icmpv4::TimeExceeded

Source§

impl Codec for internet::ietf::icmpv6::TimeExceeded

Source§

impl Codec for internet::ietf::icmpv4::TimeExceededCode

Source§

impl Codec for internet::ietf::icmpv6::TimeExceededCode

Source§

impl Codec for internet::ietf::udp::Timestamp

Source§

impl Codec for internet::ietf::icmpv4::Timestamp

Source§

impl Codec for TimestampReply

Source§

impl Codec for Timestamps

Source§

impl Codec for TlsPlaintext

Source§

impl Codec for TrafficClass

Source§

impl Codec for TransportParameterId

Source§

impl Codec for internet::ietf::icmpv4::Type

Source§

impl Codec for internet::ietf::icmpv6::Type

Source§

impl Codec for internet::ietf::ipv4::Type

Source§

impl Codec for UseSrtp

Source§

impl Codec for VariableLengthInteger

Source§

impl Codec for internet::ietf::quic::Version

Source§

impl Codec for internet::ietf::ip::Version

Source§

impl Codec for VersionNegotiationPacket

Source§

impl Codec for VlanTag

Source§

impl Codec for WindowScale

Source§

impl Codec for internet::ietf::quicv1::ZeroRttPacket

Source§

impl Codec for internet::ietf::quicv2::ZeroRttPacket

Source§

impl Codec for u24

Source§

impl Codec<PacketNumberLength> for PacketNumber

Source§

impl Codec<VariableLengthInteger> for RetryToken

Source§

impl Codec<u8> for internet::ietf::quic::ConnectionId

Source§

impl Codec<u8> for internet::ietf::quicv1::ConnectionId

Source§

impl Codec<u8> for internet::ietf::quicv1::OneRttPacket

Source§

impl Codec<u8> for internet::ietf::quicv2::OneRttPacket

Source§

impl Codec<usize> for internet::ietf::tcp::Options

Source§

impl Codec<usize> for internet::ietf::udp::Options

Source§

impl Codec<usize> for internet::ietf::ipv4::Options

Source§

impl<'a> Codec for TransportParameter<'a>

Source§

impl<T: Codec, P: LengthPrefix> Codec for TlsVec<T, P>