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]

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]

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]

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]

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]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<'a> Write for Compressor<'a>[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]

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>1.36.0[src]

Like write, except that it writes from a slice of buffers. Read more

fn is_write_vectored(&self) -> bool[src]

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Writer has an efficient write_vectored implementation. Read more

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]

🔬 This is a nightly-only experimental API. (write_all_vectored)

Attempts to write multiple buffers into this writer. Read more

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>1.0.0[src]

Writes a formatted string into this writer, returning any error encountered. Read more

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a “by reference” adaptor for this instance of Write. 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> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.