pub trait ColumnStore:
Send
+ Sync
+ Clone
+ 'static {
// Required methods
fn insert(
&self,
version: CommitVersion,
columns: Vec<CompressedColumn>,
) -> Result<()>;
fn scan(
&self,
version: CommitVersion,
column_indices: &[usize],
) -> Result<Vec<ColumnData>>;
fn statistics(&self, column_index: usize) -> Option<ColumnStatistics>;
fn partition_count(&self) -> usize;
fn compressed_size(&self) -> usize;
fn uncompressed_size(&self) -> usize;
}Expand description
Trait for columnar storage backends
Required Methods§
fn insert( &self, version: CommitVersion, columns: Vec<CompressedColumn>, ) -> Result<()>
fn scan( &self, version: CommitVersion, column_indices: &[usize], ) -> Result<Vec<ColumnData>>
fn statistics(&self, column_index: usize) -> Option<ColumnStatistics>
fn partition_count(&self) -> usize
fn compressed_size(&self) -> usize
fn uncompressed_size(&self) -> usize
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".