der/writer.rs
1//! Writer trait.
2
3#[cfg(feature = "pem")]
4pub(crate) mod pem;
5pub(crate) mod slice;
6
7use crate::Result;
8
9#[cfg(feature = "std")]
10use std::io;
11
12/// Writer trait which outputs encoded DER.
13pub trait Writer {
14 /// Write the given DER-encoded bytes as output.
15 fn write(&mut self, slice: &[u8]) -> Result<()>;
16
17 /// Write a single byte.
18 fn write_byte(&mut self, byte: u8) -> Result<()> {
19 self.write(&[byte])
20 }
21}
22
23#[cfg(feature = "std")]
24impl<W: io::Write> Writer for W {
25 fn write(&mut self, slice: &[u8]) -> Result<()> {
26 <Self as io::Write>::write(self, slice)?;
27 Ok(())
28 }
29}