Struct sequoia_openpgp::serialize::stream::Compressor [−][src]
pub struct Compressor<'a> { /* fields omitted */ }
Expand description
Compresses a message.
Writes a compressed data packet containing all packets written to this writer.
Implementations
Creates a new compressor using the default algorithm and compression level.
To change the compression algorithm use Compressor::algo
.
Use Compressor::level
to change the compression level.
Examples
use std::io::Write; use sequoia_openpgp as openpgp; use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; use openpgp::types::CompressionAlgorithm; let message = Message::new(&mut sink); let message = Compressor::new(message) // Customize the `Compressor` here. .build()?; let mut message = LiteralWriter::new(message).build()?; message.write_all(b"Hello world.")?; message.finalize()?;
Sets the compression algorithm.
Examples
use std::io::Write; use sequoia_openpgp as openpgp; use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; use openpgp::types::CompressionAlgorithm; let mut sink = vec![]; { let message = Message::new(&mut sink); let message = Compressor::new(message) .algo(CompressionAlgorithm::Uncompressed) .build()?; let mut message = LiteralWriter::new(message).build()?; message.write_all(b"Hello world.")?; message.finalize()?; } assert_eq!(b"\xc8\x15\x00\xcb\x12b\x00\x00\x00\x00\x00Hello world.", sink.as_slice());
Sets the compression level.
Examples
use std::io::Write; use sequoia_openpgp as openpgp; use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; use openpgp::types::{CompressionAlgorithm, CompressionLevel}; let message = Message::new(&mut sink); let message = Compressor::new(message) .level(CompressionLevel::fastest()) .build()?; let mut message = LiteralWriter::new(message).build()?; message.write_all(b"Hello world.")?; message.finalize()?;
Builds the compressor, returning the writer stack.
The most useful filter to push to the writer stack next is the
Signer
or the LiteralWriter
. Finally, literal data
must be wrapped using the LiteralWriter
.
Examples
use std::io::Write; use sequoia_openpgp as openpgp; use openpgp::serialize::stream::{Message, Compressor, LiteralWriter}; use openpgp::types::CompressionAlgorithm; let message = Message::new(&mut sink); let message = Compressor::new(message) // Customize the `Compressor` here. .build()?; let mut message = LiteralWriter::new(message).build()?; message.write_all(b"Hello world.")?; message.finalize()?;
Trait Implementations
Write a buffer into this writer, returning how many bytes were written. Read more
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
Attempts to write an entire buffer into this writer. Read more
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Writes a formatted string into this writer, returning any error encountered. Read more
Auto Trait Implementations
impl<'a> !RefUnwindSafe for Compressor<'a>
impl<'a> Send for Compressor<'a>
impl<'a> Sync for Compressor<'a>
impl<'a> Unpin for Compressor<'a>
impl<'a> !UnwindSafe for Compressor<'a>