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,
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,
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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
§impl DeserializeBytes for ()
impl DeserializeBytes for ()
§impl DeserializeBytes for SignatureKeyPair
impl DeserializeBytes for SignatureKeyPair
§impl DeserializeBytes for u8
impl DeserializeBytes for u8
§impl DeserializeBytes for u16
impl DeserializeBytes for u16
§impl DeserializeBytes for u32
impl DeserializeBytes for u32
§impl DeserializeBytes for u64
impl DeserializeBytes for u64
§impl<T, U, V> DeserializeBytes for (T, U, V)
impl<T, U, V> DeserializeBytes for (T, U, V)
§impl<T, U> DeserializeBytes for (T, U)where
T: DeserializeBytes,
U: DeserializeBytes,
impl<T, U> DeserializeBytes for (T, U)where
T: DeserializeBytes,
U: DeserializeBytes,
§impl<T> DeserializeBytes for Box<T>where
T: DeserializeBytes,
impl<T> DeserializeBytes for Box<T>where
T: DeserializeBytes,
§impl<T> DeserializeBytes for Option<T>where
T: DeserializeBytes,
impl<T> DeserializeBytes for Option<T>where
T: DeserializeBytes,
§impl<T> DeserializeBytes for PhantomData<T>
impl<T> DeserializeBytes for PhantomData<T>
fn tls_deserialize_bytes(bytes: &[u8]) -> Result<(PhantomData<T>, &[u8]), Error>
§impl<T> DeserializeBytes for Vec<T>where
T: DeserializeBytes,
impl<T> DeserializeBytes for Vec<T>where
T: DeserializeBytes,
§impl<const LEN: usize> DeserializeBytes for [u8; LEN]
impl<const LEN: usize> DeserializeBytes for [u8; LEN]
Implementors§
impl DeserializeBytes for AddProposalIn
impl DeserializeBytes for AppAck
impl DeserializeBytes for AppDataDictionary
extensions-draft only.impl DeserializeBytes for AppDataDictionaryExtension
extensions-draft only.impl DeserializeBytes for AppDataUpdateOperation
extensions-draft only.impl DeserializeBytes for AppDataUpdateProposal
extensions-draft only.impl DeserializeBytes for AppEphemeralProposal
impl DeserializeBytes for ApplicationIdExtension
impl DeserializeBytes for ApplicationPsk
impl DeserializeBytes for Capabilities
impl DeserializeBytes for Ciphersuite
impl DeserializeBytes for ComponentData
extensions-draft only.impl DeserializeBytes for ComponentsList
extensions-draft only.impl DeserializeBytes for ConfirmationTag
impl DeserializeBytes for ContentType
impl DeserializeBytes for Credential
impl DeserializeBytes for CredentialType
impl DeserializeBytes for CustomProposal
impl DeserializeBytes for EncryptedGroupSecrets
impl DeserializeBytes for EncryptionKey
impl DeserializeBytes for EpochId
extensions-draft and virtual-clients-draft only.impl DeserializeBytes for Extension
impl DeserializeBytes for ExtensionType
impl DeserializeBytes for ExternalInitProposal
impl DeserializeBytes for ExternalPsk
impl DeserializeBytes for ExternalPubExtension
impl DeserializeBytes for ExternalSender
impl DeserializeBytes for FrankenAddProposal
test-utils only.impl DeserializeBytes for FrankenAppDataUpdateProposal
test-utils only.impl DeserializeBytes for FrankenAppEphemeralProposal
test-utils only.impl DeserializeBytes for FrankenApplicationIdExtension
test-utils only.impl DeserializeBytes for FrankenCapabilities
test-utils only.impl DeserializeBytes for FrankenCommit
test-utils only.impl DeserializeBytes for FrankenContentType
test-utils only.impl DeserializeBytes for FrankenCredential
test-utils only.impl DeserializeBytes for FrankenCustomProposal
test-utils only.impl DeserializeBytes for FrankenEncryptedGroupSecrets
test-utils only.impl DeserializeBytes for FrankenExtension
test-utils only.impl DeserializeBytes for FrankenExtensionType
test-utils only.impl DeserializeBytes for FrankenExternalInitProposal
test-utils only.impl DeserializeBytes for FrankenExternalPsk
test-utils only.impl DeserializeBytes for FrankenExternalPubExtension
test-utils only.impl DeserializeBytes for FrankenExternalSender
test-utils only.impl DeserializeBytes for FrankenExternalSendersExtension
test-utils only.impl DeserializeBytes for FrankenFramedContent
test-utils only.impl DeserializeBytes for FrankenFramedContentBody
test-utils only.impl DeserializeBytes for FrankenHpkeCiphertext
test-utils only.impl DeserializeBytes for FrankenKeyPackage
test-utils only.impl DeserializeBytes for FrankenKeyPackageTbs
test-utils only.impl DeserializeBytes for FrankenLeafNode
test-utils only.impl DeserializeBytes for FrankenLeafNodePayload
test-utils only.impl DeserializeBytes for FrankenLeafNodeSource
test-utils only.impl DeserializeBytes for FrankenLeafNodeTbs
test-utils only.impl DeserializeBytes for FrankenLifetime
test-utils only.impl DeserializeBytes for FrankenMessageRange
test-utils only.impl DeserializeBytes for FrankenMlsMessage
test-utils only.impl DeserializeBytes for FrankenMlsMessageBody
test-utils only.impl DeserializeBytes for FrankenNode
test-utils only.impl DeserializeBytes for FrankenParentNode
test-utils only.impl DeserializeBytes for FrankenPrivateMessage
test-utils only.impl DeserializeBytes for FrankenProposal
test-utils only.impl DeserializeBytes for FrankenProposalOrRef
test-utils only.impl DeserializeBytes for FrankenProposalType
test-utils only.impl DeserializeBytes for FrankenPsk
test-utils only.impl DeserializeBytes for FrankenPublicMessage
test-utils only.impl DeserializeBytes for FrankenRatchetTreeExtension
test-utils only.impl DeserializeBytes for FrankenReInitProposal
test-utils only.impl DeserializeBytes for FrankenRemoveProposal
test-utils only.impl DeserializeBytes for FrankenRequiredCapabilitiesExtension
test-utils only.impl DeserializeBytes for FrankenResumptionPsk
test-utils only.impl DeserializeBytes for FrankenResumptionPskUsage
test-utils only.impl DeserializeBytes for FrankenSender
test-utils only.impl DeserializeBytes for FrankenTreePosition
test-utils only.impl DeserializeBytes for FrankenUpdatePathIn
test-utils only.impl DeserializeBytes for FrankenUpdatePathNode
test-utils only.impl DeserializeBytes for FrankenUpdateProposal
test-utils only.impl DeserializeBytes for FrankenWelcome
test-utils only.impl DeserializeBytes for GenerationId
extensions-draft and virtual-clients-draft only.impl DeserializeBytes for GroupContext
impl DeserializeBytes for GroupContextExtensionProposalIn
impl DeserializeBytes for GroupEpoch
impl DeserializeBytes for GroupId
impl DeserializeBytes for HashReference
impl DeserializeBytes for HpkeCiphertext
impl DeserializeBytes for HpkePrivateKey
impl DeserializeBytes for InitKey
impl DeserializeBytes for KeyPackageIn
impl DeserializeBytes for KeyPackageInfo
extensions-draft and virtual-clients-draft only.impl DeserializeBytes for KeyPackageUpload
extensions-draft and virtual-clients-draft only.impl DeserializeBytes for LastResortExtension
impl DeserializeBytes for LeafNodeIndex
impl DeserializeBytes for LeafNodeSource
impl DeserializeBytes for Lifetime
impl DeserializeBytes for MlsMessageBodyIn
impl DeserializeBytes for MlsMessageIn
impl DeserializeBytes for ParentNode
impl DeserializeBytes for PrivateMessageIn
impl DeserializeBytes for ProposalIn
impl DeserializeBytes for ProposalOrRefIn
impl DeserializeBytes for ProposalOrRefType
impl DeserializeBytes for ProposalType
impl DeserializeBytes for ProtocolVersion
impl DeserializeBytes for Psk
impl DeserializeBytes for PublicMessageIn
impl DeserializeBytes for RatchetTreeExtension
impl DeserializeBytes for RatchetTreeIn
impl DeserializeBytes for ReInitProposal
impl DeserializeBytes for RemoveProposal
impl DeserializeBytes for RequiredCapabilitiesExtension
impl DeserializeBytes for ResumptionPsk
impl DeserializeBytes for ResumptionPskUsage
impl DeserializeBytes for SafeAad
extensions-draft only.impl DeserializeBytes for SafeAadItem
extensions-draft only.impl DeserializeBytes for SecretVLBytes
impl DeserializeBytes for Sender
impl DeserializeBytes for SenderExtensionIndex
impl DeserializeBytes for SignContent
impl DeserializeBytes for Signature
impl DeserializeBytes for SignaturePublicKey
impl DeserializeBytes for SignatureScheme
impl DeserializeBytes for TargetedMessageIn
targeted-messages-draft only.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 DeserializeBytes for VerifiableGroupInfo
impl DeserializeBytes for VirtualClientOperationType
extensions-draft and virtual-clients-draft only.