pub trait Codec: Debug + Sized {
    // Required methods
    fn encode(&self, bytes: &mut Vec<u8, Global>);
    fn read(_: &mut Reader<'_>) -> Option<Self>;

    // Provided methods
    fn get_encoding(&self) -> Vec<u8, Global>  { ... }
    fn read_bytes(bytes: &[u8]) -> Option<Self> { ... }
}
Expand description

Trait for implementing encoding and decoding functionality on something.

Required Methods§

fn encode(&self, bytes: &mut Vec<u8, Global>)

Function for encoding itself by appending itself to the provided vec of bytes.

fn read(_: &mut Reader<'_>) -> Option<Self>

Function for decoding itself from the provided reader will return Some if the decoding was successful or None if it was not.

Provided Methods§

fn get_encoding(&self) -> Vec<u8, Global>

Convenience function for encoding the implementation into a vec and returning it

fn read_bytes(bytes: &[u8]) -> Option<Self>

Function for wrapping a call to the read function in a Reader for the slice of bytes provided

Implementations on Foreign Types§

§

impl Codec for Vec<PresharedKeyIdentity, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<PresharedKeyIdentity, Global>>

§

impl Codec for Vec<PayloadU8, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<PayloadU8, Global>>

§

impl Codec for Vec<ServerName, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<ServerName, Global>>

§

impl Codec for Vec<ServerExtension, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<ServerExtension, Global>>

§

impl Codec for Vec<PSKKeyExchangeMode, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<PSKKeyExchangeMode, Global>>

§

impl Codec for Vec<NamedGroup, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<NamedGroup, Global>>

§

impl Codec for u64

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<u64>

§

impl Codec for Vec<SignatureScheme, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<SignatureScheme, Global>>

§

impl Codec for Vec<CertificateExtension, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<CertificateExtension, Global>>

§

impl Codec for Vec<ClientCertificateType, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<ClientCertificateType, Global>>

§

impl Codec for Vec<ProtocolVersion, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<ProtocolVersion, Global>>

§

impl Codec for Vec<CertReqExtension, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<CertReqExtension, Global>>

§

impl Codec for u16

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<u16>

§

impl Codec for u8

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<u8>

§

impl Codec for Vec<KeyShareEntry, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<KeyShareEntry, Global>>

§

impl Codec for Vec<Certificate, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<Certificate, Global>>

§

impl Codec for u32

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<u32>

§

impl Codec for Vec<PayloadU16, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<PayloadU16, Global>>

§

impl Codec for Vec<NewSessionTicketExtension, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<NewSessionTicketExtension, Global>>

§

impl Codec for Vec<ECPointFormat, Global>

§

fn encode(&self, bytes: &mut Vec<u8, Global>)

§

fn read(r: &mut Reader<'_>) -> Option<Vec<ECPointFormat, Global>>

Implementors§

§

impl Codec for AlertDescription

§

impl Codec for CipherSuite

§

impl Codec for ContentType

§

impl Codec for HandshakeType

§

impl Codec for NamedGroup

§

impl Codec for ProtocolVersion

§

impl Codec for SignatureAlgorithm

§

impl Codec for SignatureScheme

§

impl Codec for AlertLevel

§

impl Codec for CertificateStatusType

§

impl Codec for ClientCertificateType

§

impl Codec for Compression

§

impl Codec for ECCurveType

§

impl Codec for ECPointFormat

§

impl Codec for ExtensionType

§

impl Codec for HashAlgorithm

§

impl Codec for HeartbeatMessageType

§

impl Codec for HeartbeatMode

§

impl Codec for KeyUpdateRequest

§

impl Codec for NamedCurve

§

impl Codec for PSKKeyExchangeMode

§

impl Codec for ServerNameType

§

impl Codec for CertReqExtension

§

impl Codec for CertificateExtension

§

impl Codec for CertificateStatusRequest

§

impl Codec for ClientExtension

§

impl Codec for HelloRetryExtension

§

impl Codec for NewSessionTicketExtension

§

impl Codec for ServerExtension

§

impl Codec for ServerKeyExchangePayload

§

impl Codec for Certificate

§

impl Codec for DigitallySignedStruct

§

impl Codec for AlertMessagePayload

§

impl Codec for Payload

§

impl Codec for PayloadU8

§

impl Codec for PayloadU16

§

impl Codec for PayloadU24

§

impl Codec for ChangeCipherSpecPayload

§

impl Codec for CertificateEntry

§

impl Codec for CertificatePayloadTLS13

§

impl Codec for CertificateRequestPayload

§

impl Codec for CertificateRequestPayloadTLS13

§

impl Codec for CertificateStatus

§

impl Codec for ClientECDHParams

§

impl Codec for ClientHelloPayload

§

impl Codec for ECDHEServerKeyExchange

§

impl Codec for ECParameters

§

impl Codec for HandshakeMessagePayload

§

impl Codec for HelloRetryRequest

§

impl Codec for KeyShareEntry

§

impl Codec for NewSessionTicketPayload

§

impl Codec for NewSessionTicketPayloadTLS13

§

impl Codec for OCSPCertificateStatusRequest

§

impl Codec for PresharedKeyIdentity

§

impl Codec for PresharedKeyOffer

§

impl Codec for Random

§

impl Codec for ServerECDHParams

§

impl Codec for ServerHelloPayload

§

impl Codec for ServerName

§

impl Codec for SessionID

§

impl Codec for ClientSessionKey

§

impl Codec for ServerSessionValue

§

impl Codec for u24