Serialize

Trait Serialize 

pub trait Serialize: Size {
    // Required method
    fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
       where W: Write;

    // Provided method
    fn tls_serialize_detached(&self) -> Result<Vec<u8>, Error> { ... }
}
Expand description

The Serialize trait provides functions to serialize a struct or enum.

The trait provides two functions:

  • tls_serialize that takes a buffer to write the serialization to
  • tls_serialize_detached that returns a byte vector

Required Methods§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

Serialize self and write it to the writer. The function returns the number of bytes written to writer.

Provided Methods§

fn tls_serialize_detached(&self) -> Result<Vec<u8>, Error>

Serialize self and return it as a byte vector.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Serialize for &u8

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for &u16

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for &u32

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for &u64

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for &HpkePublicKey

Available on crate feature serialization only.
§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for &SignatureKeyPair

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for u8

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for u16

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for u32

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for u64

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for ()

§

fn tls_serialize<W>(&self, _: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for HpkePublicKey

Available on crate feature serialization only.
§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl Serialize for SignatureKeyPair

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl<T> Serialize for &[T]
where T: Serialize + Debug,

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl<T> Serialize for Vec<T>
where T: Serialize + Debug,

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

impl<T> Serialize for PhantomData<T>

§

fn tls_serialize<W>(&self, _: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

§

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

§

fn tls_serialize<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write,

Implementors§

§

impl Serialize for &Extension

§

impl Serialize for &ContentType

§

impl Serialize for &MlsMessageBodyIn

§

impl Serialize for &MlsMessageBodyOut

§

impl Serialize for &Sender

§

impl Serialize for &WireFormat

§

impl Serialize for &Psk

§

impl Serialize for &ResumptionPskUsage

§

impl Serialize for &Ciphersuite

§

impl Serialize for &FrankenContentType

§

impl Serialize for &FrankenFramedContentBody

§

impl Serialize for &FrankenLeafNodeSource

§

impl Serialize for &FrankenMlsMessageBody

§

impl Serialize for &FrankenNode

§

impl Serialize for &FrankenProposalOrRef

§

impl Serialize for &FrankenPsk

§

impl Serialize for &FrankenResumptionPskUsage

§

impl Serialize for &FrankenSender

§

impl Serialize for &LeafNodeSource

§

impl Serialize for &Node

§

impl Serialize for &ProposalIn

§

impl Serialize for &ProposalOrRefType

§

impl Serialize for &SignatureScheme

§

impl Serialize for &Credential

§

impl Serialize for &ApplicationIdExtension

§

impl Serialize for &ExternalPubExtension

§

impl Serialize for &ExternalSender

§

impl Serialize for &LastResortExtension

§

impl Serialize for &Metadata

§

impl Serialize for &RatchetTreeExtension

§

impl Serialize for &RequiredCapabilitiesExtension

§

impl Serialize for &SenderExtensionIndex

§

impl Serialize for &MlsMessageIn

§

impl Serialize for &MlsMessageOut

§

impl Serialize for &PrivateMessage

§

impl Serialize for &PrivateMessageIn

§

impl Serialize for &GroupContext

§

impl Serialize for &GroupEpoch

§

impl Serialize for &GroupId

§

impl Serialize for &InitKey

§

impl Serialize for &KeyPackageIn

§

impl Serialize for &Lifetime

§

impl Serialize for &VerifiableGroupInfo

§

impl Serialize for &ConfirmationTag

§

impl Serialize for &EncryptedGroupSecrets

§

impl Serialize for &Welcome

§

impl Serialize for &HashReference

§

impl Serialize for &EncryptContext

§

impl Serialize for &HpkePrivateKey

§

impl Serialize for &ResumptionPsk

§

impl Serialize for &ExternalPsk

§

impl Serialize for &PreSharedKeyId

§

impl Serialize for &FrankenAddProposal

§

impl Serialize for &FrankenApplicationIdExtension

§

impl Serialize for &FrankenCapabilities

§

impl Serialize for &FrankenCommit

§

impl Serialize for &FrankenCredential

§

impl Serialize for &FrankenCustomProposal

§

impl Serialize for &FrankenEncryptedGroupSecrets

§

impl Serialize for &FrankenExternalInitProposal

§

impl Serialize for &FrankenExternalPsk

§

impl Serialize for &FrankenExternalPubExtension

§

impl Serialize for &FrankenExternalSender

§

impl Serialize for &FrankenExternalSendersExtension

§

impl Serialize for &FrankenFramedContent

§

impl Serialize for &FrankenHpkeCiphertext

§

impl Serialize for &FrankenKeyPackage

§

impl Serialize for &FrankenKeyPackageTbs

§

impl Serialize for &FrankenLeafNode

§

impl Serialize for &FrankenLeafNodePayload

§

impl Serialize for &FrankenLifetime

§

impl Serialize for &FrankenMessageRange

§

impl Serialize for &FrankenMlsMessage

§

impl Serialize for &FrankenParentNode

§

impl Serialize for &FrankenPreSharedKeyId

§

impl Serialize for &FrankenPreSharedKeyProposal

§

impl Serialize for &FrankenPrivateMessage

§

impl Serialize for &FrankenRatchetTreeExtension

§

impl Serialize for &FrankenReInitProposal

§

impl Serialize for &FrankenRemoveProposal

§

impl Serialize for &FrankenRequiredCapabilitiesExtension

§

impl Serialize for &FrankenResumptionPsk

§

impl Serialize for &FrankenTreePosition

§

impl Serialize for &FrankenUpdatePathIn

§

impl Serialize for &FrankenUpdatePathNode

§

impl Serialize for &FrankenUpdateProposal

§

impl Serialize for &FrankenWelcome

§

impl Serialize for &EncryptionKey

§

impl Serialize for &LeafNode

§

impl Serialize for &ParentNode

§

impl Serialize for &RatchetTree

§

impl Serialize for &RatchetTreeIn

§

impl Serialize for &AddProposal

§

impl Serialize for &AddProposalIn

§

impl Serialize for &Capabilities

§

impl Serialize for &CustomProposal

§

impl Serialize for &ExternalInitProposal

§

impl Serialize for &GroupContextExtensionProposal

§

impl Serialize for &HpkeCiphertext

§

impl Serialize for &LeafNodeIndex

§

impl Serialize for &PreSharedKeyProposal

§

impl Serialize for &ReInitProposal

§

impl Serialize for &RemoveProposal

§

impl Serialize for &SignContent

§

impl Serialize for &Signature

§

impl Serialize for &SignaturePublicKey

§

impl Serialize for &TlsByteVecU8

§

impl Serialize for &TlsByteVecU16

§

impl Serialize for &TlsByteVecU24

§

impl Serialize for &TlsByteVecU32

§

impl Serialize for &U24

§

impl Serialize for &UpdateProposal

§

impl Serialize for &UpdateProposalIn

§

impl Serialize for &VLByteSlice<'_>

§

impl Serialize for &VLBytes

§

impl Serialize for &VerifiableCiphersuite

§

impl Serialize for CredentialType

§

impl Serialize for Extension

§

impl Serialize for ExtensionType

§

impl Serialize for ContentType

§

impl Serialize for MlsMessageBodyIn

§

impl Serialize for MlsMessageBodyOut

§

impl Serialize for Sender

§

impl Serialize for WireFormat

§

impl Serialize for Psk

§

impl Serialize for ResumptionPskUsage

§

impl Serialize for Ciphersuite

§

impl Serialize for FrankenContentType

§

impl Serialize for FrankenExtension

§

impl Serialize for FrankenExtensionType

§

impl Serialize for FrankenFramedContentBody

§

impl Serialize for FrankenLeafNodeSource

§

impl Serialize for FrankenMlsMessageBody

§

impl Serialize for FrankenNode

§

impl Serialize for FrankenProposal

§

impl Serialize for FrankenProposalOrRef

§

impl Serialize for FrankenProposalType

§

impl Serialize for FrankenPsk

§

impl Serialize for FrankenResumptionPskUsage

§

impl Serialize for FrankenSender

§

impl Serialize for LeafNodeSource

§

impl Serialize for Node

§

impl Serialize for ProtocolVersion

§

impl Serialize for Proposal

§

impl Serialize for ProposalIn

§

impl Serialize for ProposalOrRefType

§

impl Serialize for ProposalType

§

impl Serialize for SignatureScheme

Source§

impl Serialize for XmtpInstallationCredential

§

impl Serialize for Credential

§

impl Serialize for ApplicationIdExtension

§

impl Serialize for Extensions

§

impl Serialize for ExternalPubExtension

§

impl Serialize for ExternalSender

§

impl Serialize for LastResortExtension

§

impl Serialize for Metadata

§

impl Serialize for RatchetTreeExtension

§

impl Serialize for RequiredCapabilitiesExtension

§

impl Serialize for SenderExtensionIndex

§

impl Serialize for MlsMessageIn

§

impl Serialize for MlsMessageOut

§

impl Serialize for PrivateMessage

§

impl Serialize for PrivateMessageIn

§

impl Serialize for PublicMessage

§

impl Serialize for PublicMessageIn

§

impl Serialize for GroupContext

§

impl Serialize for GroupEpoch

§

impl Serialize for GroupId

§

impl Serialize for InitKey

§

impl Serialize for KeyPackageIn

§

impl Serialize for Lifetime

§

impl Serialize for GroupInfo

§

impl Serialize for VerifiableGroupInfo

§

impl Serialize for ConfirmationTag

§

impl Serialize for EncryptedGroupSecrets

§

impl Serialize for Welcome

§

impl Serialize for HashReference

§

impl Serialize for EncryptContext

§

impl Serialize for HpkePrivateKey

§

impl Serialize for KeyPackage

§

impl Serialize for ResumptionPsk

§

impl Serialize for ExternalPsk

§

impl Serialize for PreSharedKeyId

§

impl Serialize for FrankenAddProposal

§

impl Serialize for FrankenApplicationIdExtension

§

impl Serialize for FrankenCapabilities

§

impl Serialize for FrankenCommit

§

impl Serialize for FrankenCredential

§

impl Serialize for FrankenCustomProposal

§

impl Serialize for FrankenEncryptedGroupSecrets

§

impl Serialize for FrankenExternalInitProposal

§

impl Serialize for FrankenExternalPsk

§

impl Serialize for FrankenExternalPubExtension

§

impl Serialize for FrankenExternalSender

§

impl Serialize for FrankenExternalSendersExtension

§

impl Serialize for FrankenFramedContent

§

impl Serialize for FrankenFramedContentAuthData

§

impl Serialize for FrankenFramedContentTbs<'_>

§

impl Serialize for FrankenHpkeCiphertext

§

impl Serialize for FrankenKeyPackage

§

impl Serialize for FrankenKeyPackageTbs

§

impl Serialize for FrankenLeafNode

§

impl Serialize for FrankenLeafNodePayload

§

impl Serialize for FrankenLeafNodeTbs

§

impl Serialize for FrankenLifetime

§

impl Serialize for FrankenMessageRange

§

impl Serialize for FrankenMlsMessage

§

impl Serialize for FrankenParentNode

§

impl Serialize for FrankenPreSharedKeyId

§

impl Serialize for FrankenPreSharedKeyProposal

§

impl Serialize for FrankenPrivateMessage

§

impl Serialize for FrankenPublicMessage

§

impl Serialize for FrankenRatchetTreeExtension

§

impl Serialize for FrankenReInitProposal

§

impl Serialize for FrankenRemoveProposal

§

impl Serialize for FrankenRequiredCapabilitiesExtension

§

impl Serialize for FrankenResumptionPsk

§

impl Serialize for FrankenTreePosition

§

impl Serialize for FrankenUpdatePathIn

§

impl Serialize for FrankenUpdatePathNode

§

impl Serialize for FrankenUpdateProposal

§

impl Serialize for FrankenWelcome

§

impl Serialize for EncryptionKey

§

impl Serialize for LeafNode

§

impl Serialize for ParentNode

§

impl Serialize for RatchetTree

§

impl Serialize for RatchetTreeIn

§

impl Serialize for AddProposal

§

impl Serialize for AddProposalIn

§

impl Serialize for Capabilities

§

impl Serialize for CustomProposal

§

impl Serialize for ExternalInitProposal

§

impl Serialize for GroupContextExtensionProposal

§

impl Serialize for HpkeCiphertext

§

impl Serialize for LeafNodeIndex

§

impl Serialize for PreSharedKeyProposal

§

impl Serialize for ReInitProposal

§

impl Serialize for RemoveProposal

§

impl Serialize for SecretVLBytes

§

impl Serialize for SignContent

§

impl Serialize for Signature

§

impl Serialize for SignaturePublicKey

§

impl Serialize for TlsByteVecU8

§

impl Serialize for TlsByteVecU16

§

impl Serialize for TlsByteVecU24

§

impl Serialize for TlsByteVecU32

§

impl Serialize for U24

§

impl Serialize for UpdateProposal

§

impl Serialize for UpdateProposalIn

§

impl Serialize for VLByteSlice<'_>

§

impl Serialize for VLBytes

§

impl Serialize for VerifiableCiphersuite

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a> Serialize for FrankenAuthenticatedContentTbm<'a>

§

impl<'a> Serialize for FrankenSignContent<'a>

§

impl<'a> Serialize for TlsByteSliceU8<'a>

§

impl<'a> Serialize for TlsByteSliceU16<'a>

§

impl<'a> Serialize for TlsByteSliceU24<'a>

§

impl<'a> Serialize for TlsByteSliceU32<'a>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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