Trait lance_encoding::decoder::FieldDecoderStrategy

source ·
pub trait FieldDecoderStrategy: Send + Sync + Debug {
    // Required method
    fn create_field_scheduler<'a>(
        &self,
        field: &Field,
        column_infos: &mut VecDeque<ColumnInfo>,
        buffers: FileBuffers<'_>,
        chain: DecoderMiddlewareChainCursor<'a>,
    ) -> Result<ChosenFieldScheduler<'a>>;
}

Required Methods§

source

fn create_field_scheduler<'a>( &self, field: &Field, column_infos: &mut VecDeque<ColumnInfo>, buffers: FileBuffers<'_>, chain: DecoderMiddlewareChainCursor<'a>, ) -> Result<ChosenFieldScheduler<'a>>

Called to create a field scheduler for a field

Stratgies can examine:

  • The target field
  • The column metadata (potentially consuming multiple columns)

If a strategy does not handle an encoding it should call chain.next to delegate to the next strategy in the chain.

The actual scheduler creation is asynchronous. This is because the scheduler may need to read column metadata from disk.

Implementors§