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