use std::future::Future;
use std::io;
use minarrow::{Field, TableV};
pub trait IPCTransportWriter {
fn schema(&self) -> &[Field];
fn register_dictionary(&mut self, dict_id: i64, values: Vec<String>);
fn write_table(
&mut self,
table: impl Into<TableV> + Send,
) -> impl Future<Output = io::Result<()>> + Send;
fn write_all_tables(
&mut self,
tables: Vec<impl Into<TableV> + Send>,
) -> impl Future<Output = io::Result<()>> + Send;
fn finish(&mut self) -> impl Future<Output = io::Result<()>> + Send;
}