use super::{LINE_WIDTH, LineEnding};
use crate::{Result, Writer};
type Inner<'o> = pem_rfc7468::Encoder<'static, 'o>;
pub struct PemWriter<'o> {
inner: Inner<'o>,
}
impl<'o> PemWriter<'o> {
pub fn new(
type_label: &'static str,
line_ending: LineEnding,
out: &'o mut [u8],
) -> Result<Self> {
Ok(Self {
inner: Inner::new_wrapped(type_label, LINE_WIDTH, line_ending, out)?,
})
}
pub fn finish(self) -> Result<usize> {
Ok(self.inner.finish()?)
}
}
impl Writer for PemWriter<'_> {
fn write(&mut self, bytes: &[u8]) -> Result<()> {
Ok(self.inner.encode(bytes)?)
}
}