1mod data;
2mod encoder;
3mod server;
4mod write_stream;
5
6pub mod error;
7
8pub use data::WriteBlock;
9pub use encoder::{num_files_to_file_name_extension, Encoder, WriteStatus};
10pub use error::{FatalWriteError, WriteError};
11pub use write_stream::WriteDiskStream;
12
13use data::HeapData;
14use server::WriteServer;
15
16pub(crate) enum ServerToClientMsg<E: Encoder> {
17 NewWriteBlock { block: WriteBlock<E::T> },
18 Finished,
19 ReachedMaxSize { num_files: u32 },
20 FatalError(E::FatalError),
21}
22
23pub(crate) enum ClientToServerMsg<E: Encoder> {
24 WriteBlock { block: WriteBlock<E::T> },
25 FinishFile,
26 DiscardFile,
27 DiscardAndRestart,
28}
29
30#[derive(Debug, Clone, Copy)]
32pub struct WriteStreamOptions<E: Encoder> {
33 pub additional_opts: E::AdditionalOpts,
35
36 pub num_write_blocks: usize,
42
43 pub block_size: usize,
47
48 pub server_msg_channel_size: Option<usize>,
56}
57
58impl<E: Encoder> Default for WriteStreamOptions<E> {
59 fn default() -> Self {
60 WriteStreamOptions {
61 additional_opts: Default::default(),
62 num_write_blocks: E::DEFAULT_NUM_WRITE_BLOCKS,
63 block_size: E::DEFAULT_BLOCK_SIZE,
64 server_msg_channel_size: None,
65 }
66 }
67}