DeserializeBytes

Trait DeserializeBytes 

pub trait DeserializeBytes: Size {
    // Required method
    fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(Self, &[u8]), Error>
       where Self: Sized;

    // Provided method
    fn tls_deserialize_exact_bytes(bytes: &[u8]) -> Result<Self, Error>
       where Self: Sized { ... }
}
Expand description

The DeserializeBytes trait defines functions to deserialize a byte slice to a struct or enum. In contrast to Deserialize, this trait operates directly on byte slices and can return any remaining bytes.

Required Methods§

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

This function deserializes the bytes from the provided a &[u8] and returns the populated struct, as well as the remaining slice.

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(bytes: &[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 DeserializeBytes for u8

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(u8, &[u8]), Error>

§

impl DeserializeBytes for u16

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(u16, &[u8]), Error>

§

impl DeserializeBytes for u32

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(u32, &[u8]), Error>

§

impl DeserializeBytes for u64

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(u64, &[u8]), Error>

§

impl DeserializeBytes for ()

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<((), &[u8]), Error>

§

impl DeserializeBytes for SignatureKeyPair

§

fn tls_deserialize_bytes( bytes: &[u8], ) -> Result<(SignatureKeyPair, &[u8]), Error>

§

impl<T> DeserializeBytes for Option<T>

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(Option<T>, &[u8]), Error>

§

impl<T> DeserializeBytes for Box<T>

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(Box<T>, &[u8]), Error>

§

impl<T> DeserializeBytes for Vec<T>

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(Vec<T>, &[u8]), Error>

§

impl<T> DeserializeBytes for PhantomData<T>

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(PhantomData<T>, &[u8]), Error>

§

impl<T, U> DeserializeBytes for (T, U)

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<((T, U), &[u8]), Error>

§

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

§

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

§

fn tls_deserialize_bytes(bytes: &[u8]) -> Result<([u8; LEN], &[u8]), Error>

Implementors§

§

impl DeserializeBytes for CredentialType

§

impl DeserializeBytes for Extension

§

impl DeserializeBytes for ExtensionType

§

impl DeserializeBytes for ContentType

§

impl DeserializeBytes for MlsMessageBodyIn

§

impl DeserializeBytes for Sender

§

impl DeserializeBytes for WireFormat

§

impl DeserializeBytes for Psk

§

impl DeserializeBytes for ResumptionPskUsage

§

impl DeserializeBytes for Ciphersuite

§

impl DeserializeBytes for FrankenContentType

§

impl DeserializeBytes for FrankenExtension

§

impl DeserializeBytes for FrankenExtensionType

§

impl DeserializeBytes for FrankenFramedContentBody

§

impl DeserializeBytes for FrankenLeafNodeSource

§

impl DeserializeBytes for FrankenMlsMessageBody

§

impl DeserializeBytes for FrankenNode

§

impl DeserializeBytes for FrankenProposal

§

impl DeserializeBytes for FrankenProposalOrRef

§

impl DeserializeBytes for FrankenProposalType

§

impl DeserializeBytes for FrankenPsk

§

impl DeserializeBytes for FrankenResumptionPskUsage

§

impl DeserializeBytes for FrankenSender

§

impl DeserializeBytes for LeafNodeSource

§

impl DeserializeBytes for ProtocolVersion

§

impl DeserializeBytes for ProposalIn

§

impl DeserializeBytes for ProposalOrRefType

§

impl DeserializeBytes for ProposalType

§

impl DeserializeBytes for SignatureScheme

§

impl DeserializeBytes for Credential

§

impl DeserializeBytes for ApplicationIdExtension

§

impl DeserializeBytes for Extensions

§

impl DeserializeBytes for ExternalPubExtension

§

impl DeserializeBytes for ExternalSender

§

impl DeserializeBytes for LastResortExtension

§

impl DeserializeBytes for RatchetTreeExtension

§

impl DeserializeBytes for RequiredCapabilitiesExtension

§

impl DeserializeBytes for SenderExtensionIndex

§

impl DeserializeBytes for MlsMessageIn

§

impl DeserializeBytes for PrivateMessageIn

§

impl DeserializeBytes for PublicMessageIn

§

impl DeserializeBytes for GroupContext

§

impl DeserializeBytes for GroupEpoch

§

impl DeserializeBytes for GroupId

§

impl DeserializeBytes for InitKey

§

impl DeserializeBytes for KeyPackageIn

§

impl DeserializeBytes for Lifetime

§

impl DeserializeBytes for VerifiableGroupInfo

§

impl DeserializeBytes for ConfirmationTag

§

impl DeserializeBytes for EncryptedGroupSecrets

§

impl DeserializeBytes for Welcome

§

impl DeserializeBytes for HashReference

§

impl DeserializeBytes for EncryptContext

§

impl DeserializeBytes for HpkePrivateKey

§

impl DeserializeBytes for ResumptionPsk

§

impl DeserializeBytes for ExternalPsk

§

impl DeserializeBytes for PreSharedKeyId

§

impl DeserializeBytes for FrankenAddProposal

§

impl DeserializeBytes for FrankenApplicationIdExtension

§

impl DeserializeBytes for FrankenCapabilities

§

impl DeserializeBytes for FrankenCommit

§

impl DeserializeBytes for FrankenCredential

§

impl DeserializeBytes for FrankenCustomProposal

§

impl DeserializeBytes for FrankenEncryptedGroupSecrets

§

impl DeserializeBytes for FrankenExternalInitProposal

§

impl DeserializeBytes for FrankenExternalPsk

§

impl DeserializeBytes for FrankenExternalPubExtension

§

impl DeserializeBytes for FrankenExternalSender

§

impl DeserializeBytes for FrankenExternalSendersExtension

§

impl DeserializeBytes for FrankenFramedContent

§

impl DeserializeBytes for FrankenHpkeCiphertext

§

impl DeserializeBytes for FrankenKeyPackage

§

impl DeserializeBytes for FrankenKeyPackageTbs

§

impl DeserializeBytes for FrankenLeafNode

§

impl DeserializeBytes for FrankenLeafNodePayload

§

impl DeserializeBytes for FrankenLeafNodeTbs

§

impl DeserializeBytes for FrankenLifetime

§

impl DeserializeBytes for FrankenMessageRange

§

impl DeserializeBytes for FrankenMlsMessage

§

impl DeserializeBytes for FrankenParentNode

§

impl DeserializeBytes for FrankenPreSharedKeyId

§

impl DeserializeBytes for FrankenPreSharedKeyProposal

§

impl DeserializeBytes for FrankenPrivateMessage

§

impl DeserializeBytes for FrankenPublicMessage

§

impl DeserializeBytes for FrankenRatchetTreeExtension

§

impl DeserializeBytes for FrankenReInitProposal

§

impl DeserializeBytes for FrankenRemoveProposal

§

impl DeserializeBytes for FrankenRequiredCapabilitiesExtension

§

impl DeserializeBytes for FrankenResumptionPsk

§

impl DeserializeBytes for FrankenTreePosition

§

impl DeserializeBytes for FrankenUpdatePathIn

§

impl DeserializeBytes for FrankenUpdatePathNode

§

impl DeserializeBytes for FrankenUpdateProposal

§

impl DeserializeBytes for FrankenWelcome

§

impl DeserializeBytes for EncryptionKey

§

impl DeserializeBytes for ParentNode

§

impl DeserializeBytes for RatchetTreeIn

§

impl DeserializeBytes for AddProposalIn

§

impl DeserializeBytes for Capabilities

§

impl DeserializeBytes for CustomProposal

§

impl DeserializeBytes for ExternalInitProposal

§

impl DeserializeBytes for GroupContextExtensionProposal

§

impl DeserializeBytes for HpkeCiphertext

§

impl DeserializeBytes for LeafNodeIndex

§

impl DeserializeBytes for PreSharedKeyProposal

§

impl DeserializeBytes for ReInitProposal

§

impl DeserializeBytes for RemoveProposal

§

impl DeserializeBytes for SecretVLBytes

§

impl DeserializeBytes for SignContent

§

impl DeserializeBytes for Signature

§

impl DeserializeBytes for SignaturePublicKey

§

impl DeserializeBytes for TlsByteVecU8

§

impl DeserializeBytes for TlsByteVecU16

§

impl DeserializeBytes for TlsByteVecU24

§

impl DeserializeBytes for TlsByteVecU32

§

impl DeserializeBytes for U24

§

impl DeserializeBytes for UpdateProposalIn

§

impl DeserializeBytes for VLBytes

§

impl DeserializeBytes for VerifiableCiphersuite

§

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

§

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

§

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

§

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

§

impl<T> DeserializeBytes for TlsVecU8<T>

§

impl<T> DeserializeBytes for TlsVecU16<T>

§

impl<T> DeserializeBytes for TlsVecU24<T>

§

impl<T> DeserializeBytes for TlsVecU32<T>