pub trait TlsDeserializeTrait: Size {
    // Required method
    fn tls_deserialize<R>(bytes: &mut R) -> Result<Self, Error>
       where R: Read,
             Self: Sized;

    // Provided methods
    fn tls_deserialize_exact(bytes: impl AsRef<[u8]>) -> Result<Self, Error>
       where Self: Sized { ... }
    fn tls_deserialize_bytes(bytes: impl AsRef<[u8]>) -> Result<Self, Error>
       where Self: Sized { ... }
}
Expand description

The Deserialize trait defines functions to deserialize a byte slice to a struct or enum.

Required Methods§

source

fn tls_deserialize<R>(bytes: &mut R) -> Result<Self, Error>where R: Read, Self: Sized,

This function deserializes the bytes from the provided a std::io::Read and returns the populated struct.

In order to get the amount of bytes read, use Size::tls_serialized_len.

Returns an error if one occurs during deserialization.

Provided Methods§

source

fn tls_deserialize_exact(bytes: impl AsRef<[u8]>) -> Result<Self, Error>where Self: Sized,

This function deserializes the provided bytes and returns the populated struct. All bytes must be consumed.

Returns an error if not all bytes are read from the input, or if an error occurs during deserialization.

source

fn tls_deserialize_bytes(bytes: impl AsRef<[u8]>) -> Result<Self, Error>where Self: Sized,

This function deserializes the provided bytes and returns the populated struct.

Returns an error if one occurs during deserialization.

Implementations on Foreign Types§

source§

impl Deserialize for u16

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<u16, Error>where R: Read,

source§

impl<T, U, V> Deserialize for (T, U, V)where T: Deserialize, U: Deserialize, V: Deserialize,

source§

impl<T> Deserialize for Vec<T, Global>where T: Deserialize,

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<Vec<T, Global>, Error>where R: Read,

source§

impl<const LEN: usize> Deserialize for [u8; LEN]

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<[u8; LEN], Error>where R: Read,

source§

impl Deserialize for ()

source§

impl Deserialize for u32

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<u32, Error>where R: Read,

source§

impl Deserialize for u64

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<u64, Error>where R: Read,

source§

impl<T, U> Deserialize for (T, U)where T: Deserialize, U: Deserialize,

source§

impl<T> Deserialize for PhantomData<T>

source§

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

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<Option<T>, Error>where R: Read,

source§

impl Deserialize for u8

source§

fn tls_deserialize<R>(bytes: &mut R) -> Result<u8, Error>where R: Read,

Implementors§

source§

impl Deserialize for CredentialType

source§

impl Deserialize for Extension

source§

impl Deserialize for ExtensionType

source§

impl Deserialize for ContentType

source§

impl Deserialize for MlsMessageInBody

source§

impl Deserialize for Sender

source§

impl Deserialize for WireFormat

source§

impl Deserialize for ProposalOrRefType

source§

impl Deserialize for ProposalType

source§

impl Deserialize for ProposalIn

source§

impl Deserialize for Psk

source§

impl Deserialize for ResumptionPskUsage

source§

impl Deserialize for ProtocolVersion

source§

impl Deserialize for Ciphersuite

source§

impl Deserialize for SignatureScheme

source§

impl Deserialize for HashReference

source§

impl Deserialize for SignContent

source§

impl Deserialize for Signature

source§

impl Deserialize for SignaturePublicKey

source§

impl Deserialize for BasicCredential

source§

impl Deserialize for Credential

source§

impl Deserialize for ApplicationIdExtension

source§

impl Deserialize for Extensions

source§

impl Deserialize for ExternalPubExtension

source§

impl Deserialize for ExternalSender

source§

impl Deserialize for RatchetTreeExtension

source§

impl Deserialize for RequiredCapabilitiesExtension

source§

impl Deserialize for SenderExtensionIndex

source§

impl Deserialize for MlsMessageIn

source§

impl Deserialize for PrivateMessageIn

source§

impl Deserialize for PublicMessageIn

source§

impl Deserialize for GroupContext

source§

impl Deserialize for GroupEpoch

source§

impl Deserialize for GroupId

source§

impl Deserialize for KeyPackageIn

source§

impl Deserialize for Lifetime

source§

impl Deserialize for VerifiableGroupInfo

source§

impl Deserialize for AppAckProposal

source§

impl Deserialize for ExternalInitProposal

source§

impl Deserialize for GroupContextExtensionProposal

source§

impl Deserialize for PreSharedKeyProposal

source§

impl Deserialize for ReInitProposal

source§

impl Deserialize for RemoveProposal

source§

impl Deserialize for AddProposalIn

source§

impl Deserialize for UpdateProposalIn

source§

impl Deserialize for ConfirmationTag

source§

impl Deserialize for EncryptedGroupSecrets

source§

impl Deserialize for Welcome

source§

impl Deserialize for ExternalPsk

source§

impl Deserialize for PreSharedKeyId

source§

impl Deserialize for ResumptionPsk

source§

impl Deserialize for EncryptionKey

source§

impl Deserialize for ParentNode

source§

impl Deserialize for RatchetTreeIn

source§

impl Deserialize for SecretVLBytes

source§

impl Deserialize for VLBytes

source§

impl Deserialize for TlsByteVecU8

source§

impl Deserialize for TlsByteVecU16

source§

impl Deserialize for TlsByteVecU32

source§

impl Deserialize for Capabilities

source§

impl Deserialize for HpkeCiphertext

source§

impl Deserialize for HpkePrivateKey

source§

impl Deserialize for LeafNodeIndex

source§

impl Deserialize for VerifiableCiphersuite

source§

impl<T> Deserialize for SecretTlsVecU8<T>where T: Zeroize + Deserialize,

source§

impl<T> Deserialize for SecretTlsVecU16<T>where T: Zeroize + Deserialize,

source§

impl<T> Deserialize for SecretTlsVecU32<T>where T: Zeroize + Deserialize,

source§

impl<T> Deserialize for TlsVecU8<T>where T: Deserialize,

source§

impl<T> Deserialize for TlsVecU16<T>where T: Deserialize,

source§

impl<T> Deserialize for TlsVecU32<T>where T: Deserialize,