lance_file/versions/v2_0/
mod.rs1use std::sync::Arc;
7
8use bytes::Bytes;
9use lance_core::{Result, datatypes::Schema};
10use lance_encoding::encoder::{ArrayFieldEncodingStrategy, EncodedBatch, FieldEncodingStrategy};
11use lance_io::traits::Writer as ObjectWriter;
12
13use crate::writer::FileWriterOptions;
14
15mod writer;
16
17pub use writer::Writer;
18
19pub fn encoding_strategy() -> Arc<dyn FieldEncodingStrategy> {
21 Arc::new(ArrayFieldEncodingStrategy::new())
22}
23
24pub fn create_writer(
26 object_writer: Box<dyn ObjectWriter>,
27 schema: Schema,
28 options: FileWriterOptions,
29) -> Result<Writer> {
30 Writer::try_new(object_writer, schema, options)
31}
32
33pub fn create_lazy_writer(
35 object_writer: Box<dyn ObjectWriter>,
36 options: FileWriterOptions,
37) -> Writer {
38 Writer::new_lazy(object_writer, options)
39}
40
41pub fn encode_self_described_batch(batch: &EncodedBatch) -> Result<Bytes> {
43 writer::concat_lance_footer(batch, true)
44}
45
46pub fn encode_mini_batch(batch: &EncodedBatch) -> Result<Bytes> {
48 writer::concat_lance_footer(batch, false)
49}