lib_compression/
patterns.rs1use serde::{Deserialize, Serialize};
4
5pub type PatternId = [u8; 32];
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Pattern {
11 pub id: PatternId,
12 pub data: Vec<u8>,
13 pub frequency: u64,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct PatternMinerConfig {
19 pub min_pattern_size: usize,
20 pub max_pattern_size: usize,
21 pub sample_size: usize,
22}
23
24impl Default for PatternMinerConfig {
25 fn default() -> Self {
26 Self {
27 min_pattern_size: 4,
28 max_pattern_size: 256,
29 sample_size: 256 * 1024, }
31 }
32}
33
34pub struct PatternMiner {
36 config: PatternMinerConfig,
37}
38
39impl PatternMiner {
40 pub fn new(config: PatternMinerConfig) -> Self {
41 Self { config }
42 }
43
44 pub fn mine(&self, _data: &[u8]) -> crate::Result<Vec<Pattern>> {
46 Ok(Vec::new())
48 }
49}