lance_file::writer

Trait ManifestProvider

Source
pub trait ManifestProvider {
    // Required method
    fn store_schema<'life0, 'life1, 'async_trait>(
        object_writer: &'life0 mut ObjectWriter,
        schema: &'life1 Schema,
    ) -> Pin<Box<dyn Future<Output = Result<Option<usize>>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

The file format currently includes a “manifest” where it stores the schema for self-describing files. Historically this has been a table format manifest that is empty except for the schema field.

Since this crate is not aware of the table format we need this to be provided externally. You should always use lance_table::io::manifest::ManifestDescribing for this today.

Required Methods§

Source

fn store_schema<'life0, 'life1, 'async_trait>( object_writer: &'life0 mut ObjectWriter, schema: &'life1 Schema, ) -> Pin<Box<dyn Future<Output = Result<Option<usize>>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait,

Store the schema in the file

This should just require writing the schema (or a manifest wrapper) as a proto struct

Note: the dictionaries have already been written by this point and the schema should be populated with the dictionary lengths/offsets

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§