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§
sourcefn create_field_scheduler<'a>(
&self,
field: &Field,
column_infos: &mut VecDeque<ColumnInfo>,
buffers: FileBuffers<'_>,
chain: DecoderMiddlewareChainCursor<'a>,
) -> Result<ChosenFieldScheduler<'a>>
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.