Struct sequoia_openpgp::serialize::stream::Compressor [−][src]
pub struct Compressor<'a> { /* fields omitted */ }
Compresses a message.
Writes a compressed data packet containing all packets written to this writer.
Implementations
impl<'a> Compressor<'a>
[src]
impl<'a> Compressor<'a>
[src]pub fn new(inner: Message<'a>) -> Self
[src]
pub fn new(inner: Message<'a>) -> Self
[src]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()?;
pub fn algo(self, algo: CompressionAlgorithm) -> Self
[src]
pub fn algo(self, algo: CompressionAlgorithm) -> Self
[src]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());
pub fn level(self, level: CompressionLevel) -> Self
[src]
pub fn level(self, level: CompressionLevel) -> Self
[src]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()?;
pub fn build(self) -> Result<Message<'a>>
[src]
pub fn build(self) -> Result<Message<'a>>
[src]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
impl<'a> Debug for Compressor<'a>
[src]
impl<'a> Debug for Compressor<'a>
[src]impl<'a> Write for Compressor<'a>
[src]
impl<'a> Write for Compressor<'a>
[src]fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]Write a buffer into this writer, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn is_write_vectored(&self) -> bool
[src]
fn is_write_vectored(&self) -> bool
[src]can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]Attempts to write an entire buffer into this writer. Read more
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
[src]
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
[src]write_all_vectored
)Attempts to write multiple buffers into this writer. 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>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self