use std::future::Future;
use std::io;
use minarrow::{Field, TableV};
#[cfg(any(feature = "tcp", feature = "quic", feature = "http"))]
pub(crate) const SEQ_ID_META_KEY: &str = "ls.seq_id";
pub trait ParallelTransportWriter {
fn schema(&self) -> &[Field];
fn stream_count(&self) -> usize;
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(self) -> impl Future<Output = io::Result<()>> + Send
where
Self: Sized;
}