use bytes::Buf;
use vortex_error::VortexExpect;
use crate::Alignment;
use crate::ByteBuffer;
use crate::ConstBuffer;
use crate::ConstByteBuffer;
pub trait AlignedBuf: Buf {
fn copy_to_aligned(&mut self, len: usize, alignment: Alignment) -> ByteBuffer {
ByteBuffer::from(self.copy_to_bytes(len)).aligned(alignment)
}
fn copy_to_const_aligned<const A: usize>(&mut self, len: usize) -> ConstByteBuffer<A> {
ConstBuffer::try_from(self.copy_to_aligned(len, Alignment::new(A)))
.vortex_expect("we just aligned the buffer")
}
}
impl<B: Buf> AlignedBuf for B {}