pub trait BucketItemSerializer {
type InputElementType<'a>: ?Sized;
type ExtraData;
type ReadBuffer;
type ExtraDataBuffer;
type ReadType<'a>;
// Required methods
fn new() -> Self;
fn reset(&mut self);
fn write_to(
&mut self,
element: &Self::InputElementType<'_>,
bucket: &mut Vec<u8>,
extra_data: &Self::ExtraData,
extra_read_buffer: &Self::ExtraDataBuffer
);
fn read_from<'a, S: Read>(
&mut self,
stream: S,
read_buffer: &'a mut Self::ReadBuffer,
extra_read_buffer: &mut Self::ExtraDataBuffer
) -> Option<Self::ReadType<'a>>;
fn get_size(
&self,
element: &Self::InputElementType<'_>,
extra: &Self::ExtraData
) -> usize;
}
Reset on non continuous data