mod data;
mod encoder;
mod server;
mod write_stream;
pub mod error;
pub use data::WriteBlock;
pub use encoder::{num_files_to_file_name_extension, Encoder, WriteStatus};
pub use error::{FatalWriteError, WriteError};
pub use write_stream::WriteDiskStream;
use data::HeapData;
use server::WriteServer;
pub(crate) enum ServerToClientMsg<E: Encoder> {
NewWriteBlock { block: WriteBlock<E::T> },
Finished,
ReachedMaxSize { num_files: u32 },
FatalError(E::FatalError),
}
pub(crate) enum ClientToServerMsg<E: Encoder> {
WriteBlock { block: WriteBlock<E::T> },
FinishFile,
DiscardFile,
DiscardAndRestart,
}
#[derive(Debug, Clone, Copy)]
pub struct WriteStreamOptions<E: Encoder> {
pub additional_opts: E::AdditionalOpts,
pub num_write_blocks: usize,
pub block_size: usize,
pub server_msg_channel_size: Option<usize>,
}
impl<E: Encoder> Default for WriteStreamOptions<E> {
fn default() -> Self {
WriteStreamOptions {
additional_opts: Default::default(),
num_write_blocks: E::DEFAULT_NUM_WRITE_BLOCKS,
block_size: E::DEFAULT_BLOCK_SIZE,
server_msg_channel_size: None,
}
}
}