zebra_chain/serialization/write_zcash.rs
1use std::io;
2
3/// Extends [`Write`] with methods for writing Zcash/Bitcoin types.
4///
5/// [`Write`]: https://doc.rust-lang.org/std/io/trait.Write.html
6pub trait WriteZcashExt: io::Write {
7 /// Convenience method to write exactly 32 u8's.
8 #[inline]
9 fn write_32_bytes(&mut self, bytes: &[u8; 32]) -> io::Result<()> {
10 self.write_all(bytes)
11 }
12
13 /// Convenience method to write exactly 64 u8's.
14 #[inline]
15 fn write_64_bytes(&mut self, bytes: &[u8; 64]) -> io::Result<()> {
16 self.write_all(bytes)
17 }
18}
19
20/// Mark all types implementing `Write` as implementing the extension.
21impl<W: io::Write + ?Sized> WriteZcashExt for W {}