pub struct Writer<W: Write> { /* private fields */ }Expand description
A filter that applies ASCII Armor to the data written to it.
Implementations§
Source§impl<W: Write> Writer<W>
impl<W: Write> Writer<W>
Sourcepub fn new(inner: W, kind: Kind) -> Result<Self>
pub fn new(inner: W, kind: Kind) -> Result<Self>
Constructs a new filter for the given type of data.
§Examples
use std::io::{Read, Write, Cursor};
use sequoia_openpgp as openpgp;
use openpgp::armor::{Writer, Kind};
let mut writer = Writer::new(Vec::new(), Kind::File)?;
writer.write_all(b"Hello world!")?;
let buffer = writer.finalize()?;
assert_eq!(
String::from_utf8_lossy(&buffer),
"-----BEGIN PGP ARMORED FILE-----
SGVsbG8gd29ybGQh
=s4Gu
-----END PGP ARMORED FILE-----
");Sourcepub fn with_headers<I, K, V>(inner: W, kind: Kind, headers: I) -> Result<Self>
pub fn with_headers<I, K, V>(inner: W, kind: Kind, headers: I) -> Result<Self>
Constructs a new filter for the given type of data.
§Examples
use std::io::{Read, Write, Cursor};
use sequoia_openpgp as openpgp;
use openpgp::armor::{Writer, Kind};
let mut writer = Writer::with_headers(Vec::new(), Kind::File,
vec![("Key", "Value")])?;
writer.write_all(b"Hello world!")?;
let buffer = writer.finalize()?;
assert_eq!(
String::from_utf8_lossy(&buffer),
"-----BEGIN PGP ARMORED FILE-----
Key: Value
SGVsbG8gd29ybGQh
=s4Gu
-----END PGP ARMORED FILE-----
");Sourcepub fn set_profile(&mut self, profile: Profile) -> Result<()>
pub fn set_profile(&mut self, profile: Profile) -> Result<()>
Sets the version of OpenPGP to generate ASCII Armor for.
This function can only be called once. Calling it repeatedly will return an error.
§Examples
use std::io::{Read, Write, Cursor};
use sequoia_openpgp as openpgp;
use openpgp::armor::{Writer, Kind};
let mut writer = Writer::new(Vec::new(), Kind::File)?;
writer.set_profile(openpgp::Profile::RFC9580)?;
writer.set_profile(openpgp::Profile::RFC9580).unwrap_err();
writer.set_profile(openpgp::Profile::RFC4880).unwrap_err();
writer.write_all(b"Hello world!")?;
let buffer = writer.finalize()?;
assert_eq!(
String::from_utf8_lossy(&buffer),
"-----BEGIN PGP ARMORED FILE-----
SGVsbG8gd29ybGQh
-----END PGP ARMORED FILE-----
");Trait Implementations§
Source§impl<W: Write> Write for Writer<W>
impl<W: Write> Write for Writer<W>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl<W> Freeze for Writer<W>where
W: Freeze,
impl<W> RefUnwindSafe for Writer<W>where
W: RefUnwindSafe,
impl<W> Send for Writer<W>where
W: Send,
impl<W> Sync for Writer<W>where
W: Sync,
impl<W> Unpin for Writer<W>where
W: Unpin,
impl<W> UnwindSafe for Writer<W>where
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more