Skip to main content

rkyv/ser/writer/
alloc.rs

1use crate::{
2    alloc::vec::Vec,
3    ser::{Positional, Writer},
4    util::AlignedVec,
5};
6
7impl Positional for Vec<u8> {
8    #[inline]
9    fn pos(&self) -> usize {
10        self.len()
11    }
12}
13
14impl<E> Writer<E> for Vec<u8> {
15    fn write(&mut self, bytes: &[u8]) -> Result<(), E> {
16        self.extend_from_slice(bytes);
17        Ok(())
18    }
19}
20
21impl<const A: usize> Positional for AlignedVec<A> {
22    #[inline]
23    fn pos(&self) -> usize {
24        self.len()
25    }
26}
27
28impl<E, const A: usize> Writer<E> for AlignedVec<A> {
29    fn write(&mut self, bytes: &[u8]) -> Result<(), E> {
30        self.extend_from_slice(bytes);
31        Ok(())
32    }
33}