summa_core/proto_traits/
compression.rs

1use summa_proto::proto;
2use tantivy::store::{Compressor, ZstdCompressor};
3
4use crate::proto_traits::Wrapper;
5
6impl From<Wrapper<proto::Compression>> for Compressor {
7    fn from(compression: Wrapper<proto::Compression>) -> Self {
8        match compression.into_inner() {
9            proto::Compression::None => Compressor::None,
10            proto::Compression::Zstd => Compressor::Zstd(ZstdCompressor { compression_level: Some(3) }),
11            proto::Compression::Zstd7 => Compressor::Zstd(ZstdCompressor { compression_level: Some(7) }),
12            proto::Compression::Zstd9 => Compressor::Zstd(ZstdCompressor { compression_level: Some(9) }),
13            proto::Compression::Zstd14 => Compressor::Zstd(ZstdCompressor { compression_level: Some(14) }),
14            proto::Compression::Zstd19 => Compressor::Zstd(ZstdCompressor { compression_level: Some(19) }),
15            proto::Compression::Zstd22 => Compressor::Zstd(ZstdCompressor { compression_level: Some(22) }),
16        }
17    }
18}
19
20impl From<Compressor> for Wrapper<proto::Compression> {
21    fn from(compressor: Compressor) -> Self {
22        Wrapper::from(match compressor {
23            Compressor::None => proto::Compression::None,
24            Compressor::Zstd(ZstdCompressor { compression_level: Some(3) }) => proto::Compression::Zstd,
25            Compressor::Zstd(ZstdCompressor { compression_level: Some(7) }) => proto::Compression::Zstd7,
26            Compressor::Zstd(ZstdCompressor { compression_level: Some(9) }) => proto::Compression::Zstd9,
27            Compressor::Zstd(ZstdCompressor { compression_level: Some(14) }) => proto::Compression::Zstd14,
28            Compressor::Zstd(ZstdCompressor { compression_level: Some(19) }) => proto::Compression::Zstd19,
29            Compressor::Zstd(ZstdCompressor { compression_level: Some(22) }) => proto::Compression::Zstd22,
30            Compressor::Zstd(ZstdCompressor { .. }) => panic!("Unsupported panic"),
31        })
32    }
33}