reifydb_codec/frame/
options.rs1use crate::frame::format::Encoding;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
7pub enum CompressionLevel {
8 None,
9
10 #[default]
11 Fast,
12
13 Max,
14}
15
16#[derive(Debug, Clone)]
17pub struct EncodeOptions {
18 pub compression: CompressionLevel,
19
20 pub force_encoding: Option<Encoding>,
21}
22
23impl Default for EncodeOptions {
24 fn default() -> Self {
25 EncodeOptions {
26 compression: CompressionLevel::Fast,
27 force_encoding: None,
28 }
29 }
30}
31
32impl EncodeOptions {
33 pub fn none() -> Self {
34 EncodeOptions {
35 compression: CompressionLevel::None,
36 force_encoding: None,
37 }
38 }
39
40 pub fn fast() -> Self {
41 EncodeOptions {
42 compression: CompressionLevel::Fast,
43 force_encoding: None,
44 }
45 }
46
47 pub fn max() -> Self {
48 EncodeOptions {
49 compression: CompressionLevel::Max,
50 force_encoding: None,
51 }
52 }
53
54 pub fn forced(encoding: Encoding) -> Self {
55 EncodeOptions {
56 compression: CompressionLevel::Max,
57 force_encoding: Some(encoding),
58 }
59 }
60}