Size

Trait Size 

pub trait Size {
    // Required method
    fn tls_serialized_len(&self) -> usize;
}
Expand description

The Size trait needs to be implemented by any struct that should be efficiently serialized. This allows to collect the length of a serialized structure before allocating memory.

Required Methods§

Implementations on Foreign Types§

§

impl Size for &u8

§

impl Size for &u16

§

impl Size for &u32

§

impl Size for &u64

§

impl Size for &HpkePublicKey

Available on crate feature serialization only.
§

impl Size for &SignatureKeyPair

§

impl Size for u8

§

impl Size for u16

§

impl Size for u32

§

impl Size for u64

§

impl Size for ()

§

impl Size for HpkePublicKey

Available on crate feature serialization only.
§

impl Size for SignatureKeyPair

§

impl<T> Size for &Option<T>
where T: Size,

§

impl<T> Size for &[T]
where T: Size,

§

impl<T> Size for &Vec<T>
where T: Size,

§

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

§

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

§

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

§

impl<T> Size for PhantomData<T>

§

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

§

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

§

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

Implementors§

§

impl Size for &Extension

§

impl Size for &ContentType

§

impl Size for &MlsMessageBodyIn

§

impl Size for &MlsMessageBodyOut

§

impl Size for &Sender

§

impl Size for &WireFormat

§

impl Size for &Psk

§

impl Size for &ResumptionPskUsage

§

impl Size for &Ciphersuite

§

impl Size for &FrankenContentType

§

impl Size for &FrankenFramedContentBody

§

impl Size for &FrankenLeafNodeSource

§

impl Size for &FrankenMlsMessageBody

§

impl Size for &FrankenNode

§

impl Size for &FrankenProposalOrRef

§

impl Size for &FrankenPsk

§

impl Size for &FrankenResumptionPskUsage

§

impl Size for &FrankenSender

§

impl Size for &LeafNodeSource

§

impl Size for &Node

§

impl Size for &ProposalIn

§

impl Size for &ProposalOrRefType

§

impl Size for &SignatureScheme

§

impl Size for &Credential

§

impl Size for &ApplicationIdExtension

§

impl Size for &Extensions

§

impl Size for &ExternalPubExtension

§

impl Size for &ExternalSender

§

impl Size for &LastResortExtension

§

impl Size for &Metadata

§

impl Size for &RatchetTreeExtension

§

impl Size for &RequiredCapabilitiesExtension

§

impl Size for &SenderExtensionIndex

§

impl Size for &MlsMessageIn

§

impl Size for &MlsMessageOut

§

impl Size for &PrivateMessage

§

impl Size for &PrivateMessageIn

§

impl Size for &GroupContext

§

impl Size for &GroupEpoch

§

impl Size for &GroupId

§

impl Size for &InitKey

§

impl Size for &KeyPackageIn

§

impl Size for &Lifetime

§

impl Size for &GroupInfo

§

impl Size for &VerifiableGroupInfo

§

impl Size for &ConfirmationTag

§

impl Size for &EncryptedGroupSecrets

§

impl Size for &Welcome

§

impl Size for &HashReference

§

impl Size for &EncryptContext

§

impl Size for &HpkePrivateKey

§

impl Size for &KeyPackage

§

impl Size for &ResumptionPsk

§

impl Size for &ExternalPsk

§

impl Size for &PreSharedKeyId

§

impl Size for &FrankenAddProposal

§

impl Size for &FrankenApplicationIdExtension

§

impl Size for &FrankenCapabilities

§

impl Size for &FrankenCommit

§

impl Size for &FrankenCredential

§

impl Size for &FrankenCustomProposal

§

impl Size for &FrankenEncryptedGroupSecrets

§

impl Size for &FrankenExternalInitProposal

§

impl Size for &FrankenExternalPsk

§

impl Size for &FrankenExternalPubExtension

§

impl Size for &FrankenExternalSender

§

impl Size for &FrankenExternalSendersExtension

§

impl Size for &FrankenFramedContent

§

impl Size for &FrankenHpkeCiphertext

§

impl Size for &FrankenKeyPackage

§

impl Size for &FrankenKeyPackageTbs

§

impl Size for &FrankenLeafNode

§

impl Size for &FrankenLeafNodePayload

§

impl Size for &FrankenLeafNodeTbs

§

impl Size for &FrankenLifetime

§

impl Size for &FrankenMessageRange

§

impl Size for &FrankenMlsMessage

§

impl Size for &FrankenParentNode

§

impl Size for &FrankenPreSharedKeyId

§

impl Size for &FrankenPreSharedKeyProposal

§

impl Size for &FrankenPrivateMessage

§

impl Size for &FrankenRatchetTreeExtension

§

impl Size for &FrankenReInitProposal

§

impl Size for &FrankenRemoveProposal

§

impl Size for &FrankenRequiredCapabilitiesExtension

§

impl Size for &FrankenResumptionPsk

§

impl Size for &FrankenTreePosition

§

impl Size for &FrankenUpdatePathIn

§

impl Size for &FrankenUpdatePathNode

§

impl Size for &FrankenUpdateProposal

§

impl Size for &FrankenWelcome

§

impl Size for &EncryptionKey

§

impl Size for &LeafNode

§

impl Size for &ParentNode

§

impl Size for &RatchetTree

§

impl Size for &RatchetTreeIn

§

impl Size for &AddProposal

§

impl Size for &AddProposalIn

§

impl Size for &Capabilities

§

impl Size for &CustomProposal

§

impl Size for &ExternalInitProposal

§

impl Size for &GroupContextExtensionProposal

§

impl Size for &HpkeCiphertext

§

impl Size for &LeafNodeIndex

§

impl Size for &PreSharedKeyProposal

§

impl Size for &ReInitProposal

§

impl Size for &RemoveProposal

§

impl Size for &SignContent

§

impl Size for &Signature

§

impl Size for &SignaturePublicKey

§

impl Size for &TlsByteVecU8

§

impl Size for &TlsByteVecU16

§

impl Size for &TlsByteVecU24

§

impl Size for &TlsByteVecU32

§

impl Size for &U24

§

impl Size for &UpdateProposal

§

impl Size for &UpdateProposalIn

§

impl Size for &VLByteSlice<'_>

§

impl Size for &VLBytes

§

impl Size for &VerifiableCiphersuite

§

impl Size for CredentialType

§

impl Size for Extension

§

impl Size for ExtensionType

§

impl Size for ContentType

§

impl Size for MlsMessageBodyIn

§

impl Size for MlsMessageBodyOut

§

impl Size for Sender

§

impl Size for WireFormat

§

impl Size for Psk

§

impl Size for ResumptionPskUsage

§

impl Size for Ciphersuite

§

impl Size for FrankenContentType

§

impl Size for FrankenExtension

§

impl Size for FrankenExtensionType

§

impl Size for FrankenFramedContentBody

§

impl Size for FrankenLeafNodeSource

§

impl Size for FrankenMlsMessageBody

§

impl Size for FrankenNode

§

impl Size for FrankenProposal

§

impl Size for FrankenProposalOrRef

§

impl Size for FrankenProposalType

§

impl Size for FrankenPsk

§

impl Size for FrankenResumptionPskUsage

§

impl Size for FrankenSender

§

impl Size for LeafNodeSource

§

impl Size for Node

§

impl Size for ProtocolVersion

§

impl Size for Proposal

§

impl Size for ProposalIn

§

impl Size for ProposalOrRefType

§

impl Size for ProposalType

§

impl Size for SignatureScheme

Source§

impl Size for XmtpInstallationCredential

§

impl Size for Credential

§

impl Size for ApplicationIdExtension

§

impl Size for Extensions

§

impl Size for ExternalPubExtension

§

impl Size for ExternalSender

§

impl Size for LastResortExtension

§

impl Size for Metadata

§

impl Size for RatchetTreeExtension

§

impl Size for RequiredCapabilitiesExtension

§

impl Size for SenderExtensionIndex

§

impl Size for MlsMessageIn

§

impl Size for MlsMessageOut

§

impl Size for PrivateMessage

§

impl Size for PrivateMessageIn

§

impl Size for PublicMessage

§

impl Size for PublicMessageIn

§

impl Size for GroupContext

§

impl Size for GroupEpoch

§

impl Size for GroupId

§

impl Size for InitKey

§

impl Size for KeyPackageIn

§

impl Size for Lifetime

§

impl Size for GroupInfo

§

impl Size for VerifiableGroupInfo

§

impl Size for ConfirmationTag

§

impl Size for EncryptedGroupSecrets

§

impl Size for Welcome

§

impl Size for HashReference

§

impl Size for EncryptContext

§

impl Size for HpkePrivateKey

§

impl Size for KeyPackage

§

impl Size for ResumptionPsk

§

impl Size for ExternalPsk

§

impl Size for PreSharedKeyId

§

impl Size for FrankenAddProposal

§

impl Size for FrankenApplicationIdExtension

§

impl Size for FrankenCapabilities

§

impl Size for FrankenCommit

§

impl Size for FrankenCredential

§

impl Size for FrankenCustomProposal

§

impl Size for FrankenEncryptedGroupSecrets

§

impl Size for FrankenExternalInitProposal

§

impl Size for FrankenExternalPsk

§

impl Size for FrankenExternalPubExtension

§

impl Size for FrankenExternalSender

§

impl Size for FrankenExternalSendersExtension

§

impl Size for FrankenFramedContent

§

impl Size for FrankenFramedContentAuthData

§

impl Size for FrankenFramedContentTbs<'_>

§

impl Size for FrankenHpkeCiphertext

§

impl Size for FrankenKeyPackage

§

impl Size for FrankenKeyPackageTbs

§

impl Size for FrankenLeafNode

§

impl Size for FrankenLeafNodePayload

§

impl Size for FrankenLeafNodeTbs

§

impl Size for FrankenLifetime

§

impl Size for FrankenMessageRange

§

impl Size for FrankenMlsMessage

§

impl Size for FrankenParentNode

§

impl Size for FrankenPreSharedKeyId

§

impl Size for FrankenPreSharedKeyProposal

§

impl Size for FrankenPrivateMessage

§

impl Size for FrankenPublicMessage

§

impl Size for FrankenRatchetTreeExtension

§

impl Size for FrankenReInitProposal

§

impl Size for FrankenRemoveProposal

§

impl Size for FrankenRequiredCapabilitiesExtension

§

impl Size for FrankenResumptionPsk

§

impl Size for FrankenTreePosition

§

impl Size for FrankenUpdatePathIn

§

impl Size for FrankenUpdatePathNode

§

impl Size for FrankenUpdateProposal

§

impl Size for FrankenWelcome

§

impl Size for EncryptionKey

§

impl Size for LeafNode

§

impl Size for ParentNode

§

impl Size for RatchetTree

§

impl Size for RatchetTreeIn

§

impl Size for AddProposal

§

impl Size for AddProposalIn

§

impl Size for Capabilities

§

impl Size for CustomProposal

§

impl Size for ExternalInitProposal

§

impl Size for GroupContextExtensionProposal

§

impl Size for HpkeCiphertext

§

impl Size for LeafNodeIndex

§

impl Size for PreSharedKeyProposal

§

impl Size for ReInitProposal

§

impl Size for RemoveProposal

§

impl Size for SecretVLBytes

§

impl Size for SignContent

§

impl Size for Signature

§

impl Size for SignaturePublicKey

§

impl Size for TlsByteVecU8

§

impl Size for TlsByteVecU16

§

impl Size for TlsByteVecU24

§

impl Size for TlsByteVecU32

§

impl Size for U24

§

impl Size for UpdateProposal

§

impl Size for UpdateProposalIn

§

impl Size for VLByteSlice<'_>

§

impl Size for VLBytes

§

impl Size for VerifiableCiphersuite

§

impl<'a> Size for &FrankenAuthenticatedContentTbm<'a>

§

impl<'a> Size for &FrankenSignContent<'a>

§

impl<'a> Size for &TlsByteSliceU8<'a>

§

impl<'a> Size for &TlsByteSliceU16<'a>

§

impl<'a> Size for &TlsByteSliceU24<'a>

§

impl<'a> Size for &TlsByteSliceU32<'a>

§

impl<'a> Size for FrankenAuthenticatedContentTbm<'a>

§

impl<'a> Size for FrankenSignContent<'a>

§

impl<'a> Size for TlsByteSliceU8<'a>

§

impl<'a> Size for TlsByteSliceU16<'a>

§

impl<'a> Size for TlsByteSliceU24<'a>

§

impl<'a> Size for TlsByteSliceU32<'a>

§

impl<'a, T> Size for &TlsSliceU8<'a, T>
where T: Size,

§

impl<'a, T> Size for &TlsSliceU16<'a, T>
where T: Size,

§

impl<'a, T> Size for &TlsSliceU24<'a, T>
where T: Size,

§

impl<'a, T> Size for &TlsSliceU32<'a, T>
where T: Size,

§

impl<'a, T> Size for TlsSliceU8<'a, T>
where T: Size,

§

impl<'a, T> Size for TlsSliceU16<'a, T>
where T: Size,

§

impl<'a, T> Size for TlsSliceU24<'a, T>
where T: Size,

§

impl<'a, T> Size for TlsSliceU32<'a, T>
where T: Size,

§

impl<T> Size for &SecretTlsVecU8<T>
where T: Zeroize + Size,

§

impl<T> Size for &SecretTlsVecU16<T>
where T: Zeroize + Size,

§

impl<T> Size for &SecretTlsVecU24<T>
where T: Zeroize + Size,

§

impl<T> Size for &SecretTlsVecU32<T>
where T: Zeroize + Size,

§

impl<T> Size for &TlsVecU8<T>
where T: Size,

§

impl<T> Size for &TlsVecU16<T>
where T: Size,

§

impl<T> Size for &TlsVecU24<T>
where T: Size,

§

impl<T> Size for &TlsVecU32<T>
where T: Size,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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