Skip to main content

vecdb/variants/raw/bytes/strategy/
value.rs

1use crate::{BytesVecValue, Result, ValueStrategy};
2
3use super::BytesStrategy;
4
5impl<T: BytesVecValue> ValueStrategy<T> for BytesStrategy<T> {
6    const IS_NATIVE_LAYOUT: bool = T::IS_NATIVE_LAYOUT;
7
8    #[inline(always)]
9    fn read(bytes: &[u8]) -> Result<T> {
10        T::from_bytes(bytes)
11    }
12
13    #[inline(always)]
14    fn write_to_vec(value: &T, buf: &mut Vec<u8>) {
15        buf.extend_from_slice(value.to_bytes().as_ref());
16    }
17
18    #[inline(always)]
19    fn write_to_slice(value: &T, dst: &mut [u8]) {
20        dst.copy_from_slice(value.to_bytes().as_ref());
21    }
22}