1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::*;
use super::*;
#[derive(Debug, Clone, bincode::Encode, bincode::Decode)]
pub struct Parameters {
pub block_size: u32,
pub compression_type: CompressionType,
pub index_compression_type: CompressionType,
pub index_chunk_size: u32,
pub seqlocs_chunk_size: u32,
}
impl Default for Parameters {
fn default() -> Self {
Parameters {
block_size: 4 * 1024 * 1024, compression_type: CompressionType::ZSTD,
index_compression_type: CompressionType::LZ4,
index_chunk_size: 64 * 1024, seqlocs_chunk_size: 64 * 1024, }
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
pub fn bincode_size_struct() {
let bincode_config = bincode::config::standard().with_fixed_int_encoding();
let mut params = Parameters::default();
let encoded_0: Vec<u8> = bincode::encode_to_vec(¶ms, bincode_config).unwrap();
params.compression_type = CompressionType::LZ4;
let encoded_1: Vec<u8> = bincode::encode_to_vec(¶ms, bincode_config).unwrap();
assert!(encoded_0.len() == encoded_1.len());
}
}