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;
}

Required Associated Types§

Required Methods§

source

fn new() -> Self

Creates a new instance

source

fn reset(&mut self)

Reset on non continuous data

source

fn write_to( &mut self, element: &Self::InputElementType<'_>, bucket: &mut Vec<u8>, extra_data: &Self::ExtraData, extra_read_buffer: &Self::ExtraDataBuffer )

source

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>>

source

fn get_size( &self, element: &Self::InputElementType<'_>, extra: &Self::ExtraData ) -> usize

Implementors§