Deserialize

Trait Deserialize 

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

    // Provided method
    fn tls_deserialize_exact(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§

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§

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.

Implementations on Foreign Types§

§

impl Deserialize for &HpkePublicKey

Available on crate feature serialization only.
§

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

§

impl Deserialize for u8

§

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

§

impl Deserialize for u16

§

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

§

impl Deserialize for u32

§

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

§

impl Deserialize for u64

§

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

§

impl Deserialize for ()

§

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

§

impl Deserialize for HpkePublicKey

Available on crate feature serialization only.
§

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

§

impl Deserialize for SignatureKeyPair

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Deserialize for PhantomData<T>

§

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

§

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

§

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

§

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

§

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

§

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

Implementors§

§

impl Deserialize for CredentialType

§

impl Deserialize for Extension

§

impl Deserialize for ExtensionType

§

impl Deserialize for ContentType

§

impl Deserialize for MlsMessageBodyIn

§

impl Deserialize for Sender

§

impl Deserialize for WireFormat

§

impl Deserialize for Psk

§

impl Deserialize for ResumptionPskUsage

§

impl Deserialize for Ciphersuite

§

impl Deserialize for FrankenContentType

§

impl Deserialize for FrankenExtension

§

impl Deserialize for FrankenExtensionType

§

impl Deserialize for FrankenFramedContentBody

§

impl Deserialize for FrankenLeafNodeSource

§

impl Deserialize for FrankenMlsMessageBody

§

impl Deserialize for FrankenNode

§

impl Deserialize for FrankenProposal

§

impl Deserialize for FrankenProposalOrRef

§

impl Deserialize for FrankenProposalType

§

impl Deserialize for FrankenPsk

§

impl Deserialize for FrankenResumptionPskUsage

§

impl Deserialize for FrankenSender

§

impl Deserialize for LeafNodeSource

§

impl Deserialize for ProtocolVersion

§

impl Deserialize for ProposalIn

§

impl Deserialize for ProposalOrRefType

§

impl Deserialize for ProposalType

§

impl Deserialize for SignatureScheme

Source§

impl Deserialize for XmtpInstallationCredential

§

impl Deserialize for Credential

§

impl Deserialize for ApplicationIdExtension

§

impl Deserialize for Extensions

§

impl Deserialize for ExternalPubExtension

§

impl Deserialize for ExternalSender

§

impl Deserialize for LastResortExtension

§

impl Deserialize for Metadata

§

impl Deserialize for RatchetTreeExtension

§

impl Deserialize for RequiredCapabilitiesExtension

§

impl Deserialize for SenderExtensionIndex

§

impl Deserialize for MlsMessageIn

§

impl Deserialize for PrivateMessageIn

§

impl Deserialize for PublicMessageIn

§

impl Deserialize for GroupContext

§

impl Deserialize for GroupEpoch

§

impl Deserialize for GroupId

§

impl Deserialize for InitKey

§

impl Deserialize for KeyPackageIn

§

impl Deserialize for Lifetime

§

impl Deserialize for GroupInfo

§

impl Deserialize for VerifiableGroupInfo

§

impl Deserialize for ConfirmationTag

§

impl Deserialize for EncryptedGroupSecrets

§

impl Deserialize for Welcome

§

impl Deserialize for HashReference

§

impl Deserialize for EncryptContext

§

impl Deserialize for HpkePrivateKey

§

impl Deserialize for ResumptionPsk

§

impl Deserialize for ExternalPsk

§

impl Deserialize for PreSharedKeyId

§

impl Deserialize for FrankenAddProposal

§

impl Deserialize for FrankenApplicationIdExtension

§

impl Deserialize for FrankenCapabilities

§

impl Deserialize for FrankenCommit

§

impl Deserialize for FrankenCredential

§

impl Deserialize for FrankenCustomProposal

§

impl Deserialize for FrankenEncryptedGroupSecrets

§

impl Deserialize for FrankenExternalInitProposal

§

impl Deserialize for FrankenExternalPsk

§

impl Deserialize for FrankenExternalPubExtension

§

impl Deserialize for FrankenExternalSender

§

impl Deserialize for FrankenExternalSendersExtension

§

impl Deserialize for FrankenFramedContent

§

impl Deserialize for FrankenHpkeCiphertext

§

impl Deserialize for FrankenKeyPackage

§

impl Deserialize for FrankenKeyPackageTbs

§

impl Deserialize for FrankenLeafNode

§

impl Deserialize for FrankenLeafNodePayload

§

impl Deserialize for FrankenLeafNodeTbs

§

impl Deserialize for FrankenLifetime

§

impl Deserialize for FrankenMessageRange

§

impl Deserialize for FrankenMlsMessage

§

impl Deserialize for FrankenParentNode

§

impl Deserialize for FrankenPreSharedKeyId

§

impl Deserialize for FrankenPreSharedKeyProposal

§

impl Deserialize for FrankenPrivateMessage

§

impl Deserialize for FrankenPublicMessage

§

impl Deserialize for FrankenRatchetTreeExtension

§

impl Deserialize for FrankenReInitProposal

§

impl Deserialize for FrankenRemoveProposal

§

impl Deserialize for FrankenRequiredCapabilitiesExtension

§

impl Deserialize for FrankenResumptionPsk

§

impl Deserialize for FrankenTreePosition

§

impl Deserialize for FrankenUpdatePathIn

§

impl Deserialize for FrankenUpdatePathNode

§

impl Deserialize for FrankenUpdateProposal

§

impl Deserialize for FrankenWelcome

§

impl Deserialize for EncryptionKey

§

impl Deserialize for ParentNode

§

impl Deserialize for RatchetTreeIn

§

impl Deserialize for AddProposalIn

§

impl Deserialize for Capabilities

§

impl Deserialize for CustomProposal

§

impl Deserialize for ExternalInitProposal

§

impl Deserialize for GroupContextExtensionProposal

§

impl Deserialize for HpkeCiphertext

§

impl Deserialize for LeafNodeIndex

§

impl Deserialize for PreSharedKeyProposal

§

impl Deserialize for ReInitProposal

§

impl Deserialize for RemoveProposal

§

impl Deserialize for SecretVLBytes

§

impl Deserialize for SignContent

§

impl Deserialize for Signature

§

impl Deserialize for SignaturePublicKey

§

impl Deserialize for TlsByteVecU8

§

impl Deserialize for TlsByteVecU16

§

impl Deserialize for TlsByteVecU24

§

impl Deserialize for TlsByteVecU32

§

impl Deserialize for U24

§

impl Deserialize for UpdateProposalIn

§

impl Deserialize for VLBytes

§

impl Deserialize for VerifiableCiphersuite

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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