diff options
Diffstat (limited to 'vendor/der/src/writer.rs')
-rw-r--r-- | vendor/der/src/writer.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/der/src/writer.rs b/vendor/der/src/writer.rs new file mode 100644 index 0000000..164b215 --- /dev/null +++ b/vendor/der/src/writer.rs @@ -0,0 +1,29 @@ +//! Writer trait. + +#[cfg(feature = "pem")] +pub(crate) mod pem; +pub(crate) mod slice; + +use crate::Result; + +#[cfg(feature = "std")] +use std::io; + +/// Writer trait which outputs encoded DER. +pub trait Writer { + /// Write the given DER-encoded bytes as output. + fn write(&mut self, slice: &[u8]) -> Result<()>; + + /// Write a single byte. + fn write_byte(&mut self, byte: u8) -> Result<()> { + self.write(&[byte]) + } +} + +#[cfg(feature = "std")] +impl<W: io::Write> Writer for W { + fn write(&mut self, slice: &[u8]) -> Result<()> { + <Self as io::Write>::write(self, slice)?; + Ok(()) + } +} |