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§
Sourcefn 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,
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.