summa-core 0.22.6

Summa Core library
Documentation
use summa_proto::proto;
use tantivy::store::{Compressor, ZstdCompressor};

use crate::proto_traits::Wrapper;

impl From<Wrapper<proto::Compression>> for Compressor {
    fn from(compression: Wrapper<proto::Compression>) -> Self {
        match compression.into_inner() {
            proto::Compression::None => Compressor::None,
            proto::Compression::Zstd => Compressor::Zstd(ZstdCompressor { compression_level: Some(3) }),
            proto::Compression::Zstd7 => Compressor::Zstd(ZstdCompressor { compression_level: Some(7) }),
            proto::Compression::Zstd9 => Compressor::Zstd(ZstdCompressor { compression_level: Some(9) }),
            proto::Compression::Zstd14 => Compressor::Zstd(ZstdCompressor { compression_level: Some(14) }),
            proto::Compression::Zstd19 => Compressor::Zstd(ZstdCompressor { compression_level: Some(19) }),
            proto::Compression::Zstd22 => Compressor::Zstd(ZstdCompressor { compression_level: Some(22) }),
        }
    }
}

impl From<Compressor> for Wrapper<proto::Compression> {
    fn from(compressor: Compressor) -> Self {
        Wrapper::from(match compressor {
            Compressor::None => proto::Compression::None,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(3) }) => proto::Compression::Zstd,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(7) }) => proto::Compression::Zstd7,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(9) }) => proto::Compression::Zstd9,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(14) }) => proto::Compression::Zstd14,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(19) }) => proto::Compression::Zstd19,
            Compressor::Zstd(ZstdCompressor { compression_level: Some(22) }) => proto::Compression::Zstd22,
            Compressor::Zstd(ZstdCompressor { .. }) => panic!("Unsupported panic"),
        })
    }
}