use alloc::vec::Vec;
#[allow(dead_code)] pub(crate) trait VecWriter {
fn write_all(&mut self, data: &[u8]);
fn write_u8(&mut self, v: u8);
fn write_u16_le(&mut self, v: u16);
fn write_u24_le(&mut self, v: u32);
fn write_u32_le(&mut self, v: u32);
}
impl VecWriter for Vec<u8> {
#[inline]
fn write_all(&mut self, data: &[u8]) {
self.extend_from_slice(data);
}
#[inline]
fn write_u8(&mut self, v: u8) {
self.push(v);
}
#[inline]
fn write_u16_le(&mut self, v: u16) {
self.extend_from_slice(&v.to_le_bytes());
}
#[inline]
fn write_u24_le(&mut self, v: u32) {
let bytes = v.to_le_bytes();
self.extend_from_slice(&bytes[..3]);
}
#[inline]
fn write_u32_le(&mut self, v: u32) {
self.extend_from_slice(&v.to_le_bytes());
}
}