numbat_codec/nested_ser_output.rs
1use alloc::vec::Vec;
2
3/// Trait that allows appending bytes.
4/// Used especially by the NestedEncode trait to output data.
5///
6/// In principle it can be anything, but in practice
7/// we only keep 1 implementation, which is Vec<u8>.
8/// This is to avoid code duplication by monomorphization.
9pub trait NestedEncodeOutput {
10 /// Write to the output.
11 fn write(&mut self, bytes: &[u8]);
12
13 /// Write a single byte to the output.
14 fn push_byte(&mut self, byte: u8) {
15 self.write(&[byte]);
16 }
17}
18
19impl NestedEncodeOutput for Vec<u8> {
20 fn write(&mut self, bytes: &[u8]) {
21 self.extend_from_slice(bytes)
22 }
23}