1use crate::schema::Record;
3
4#[derive(Debug, Clone, PartialEq, Hash)]
6pub struct FileMetadata {
7 pub record: Record,
9 pub compression: Option<Compression>,
11 pub marker: [u8; 16],
13}
14
15#[derive(Debug, Clone, Default, PartialEq, Eq)]
17pub struct CompressedBlock {
18 pub number_of_rows: usize,
20 pub data: Vec<u8>,
22}
23
24impl CompressedBlock {
25 pub fn new(number_of_rows: usize, data: Vec<u8>) -> Self {
27 Self {
28 number_of_rows,
29 data,
30 }
31 }
32}
33
34#[derive(Debug, Clone, Default, PartialEq, Eq)]
36pub struct Block {
37 pub number_of_rows: usize,
39 pub data: Vec<u8>,
41}
42
43impl Block {
44 pub fn new(number_of_rows: usize, data: Vec<u8>) -> Self {
46 Self {
47 number_of_rows,
48 data,
49 }
50 }
51}
52
53#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
55pub enum Compression {
56 Deflate,
58 Snappy,
60}