Trait sequoia_openpgp::serialize::MarshalInto
source · pub trait MarshalInto: Sealed {
// Required methods
fn serialized_len(&self) -> usize;
fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>;
// Provided methods
fn to_vec(&self) -> Result<Vec<u8>> { ... }
fn export_into(&self, buf: &mut [u8]) -> Result<usize> { ... }
fn export_to_vec(&self) -> Result<Vec<u8>> { ... }
}
Expand description
Serializes OpenPGP data structures into pre-allocated buffers.
This trait provides the same interface as SerializeInto
, but is
implemented for all data structures that can be serialized.
In general, you should prefer the SerializeInto
trait, as it is
only implemented for data structures that are normally exported.
See the documentation for Serialize
for more details.
§Sealed trait
This trait is sealed and cannot be implemented for types outside this crate.
Therefore it can be extended in a non-breaking way.
If you want to implement the trait inside the crate
you also need to implement the seal::Sealed
marker trait.
Required Methods§
sourcefn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
Computes the maximal length of the serialized representation.
§Errors
If serialization would fail, this function underestimates the length.
sourcefn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
Serializes into the given buffer.
Returns the length of the serialized representation.
§Errors
If the length of the given slice is smaller than the maximal
length computed by serialized_len()
, this function returns
Error::InvalidArgument
.
Provided Methods§
sourcefn export_into(&self, buf: &mut [u8]) -> Result<usize>
fn export_into(&self, buf: &mut [u8]) -> Result<usize>
Exports into the given buffer.
This is similar to serialize_into(..)
, with these
exceptions:
- It is an error to export a
Signature
if it is marked as non-exportable. - When exporting a
Cert
, non-exportable signatures are not exported, and any component bound merely by non-exportable signatures is not exported.
Returns the length of the serialized representation.
§Errors
If the length of the given slice is smaller than the maximal
length computed by serialized_len()
, this function returns
Error::InvalidArgument
.