diff options
Diffstat (limited to 'vendor/der/src/writer.rs')
-rw-r--r-- | vendor/der/src/writer.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/vendor/der/src/writer.rs b/vendor/der/src/writer.rs new file mode 100644 index 000000000..5e9774413 --- /dev/null +++ b/vendor/der/src/writer.rs @@ -0,0 +1,30 @@ +//! 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")] +#[cfg_attr(docsrs, doc(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(()) + } +} |