vecdb/variants/raw/bytes/strategy/
value.rs1use 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}