mod bzip2;
mod gzip;
mod lz4;
mod pipeline;
mod tar;
mod xz;
mod zip;
mod zstd;
pub use bzip2::{Bzip2, Bzip2Args};
pub use gzip::{Gzip, GzipArgs};
pub use lz4::{Lz4, Lz4Args};
pub use pipeline::Pipeline;
pub use tar::{Tar, TarArgs};
pub use xz::{Xz, XzArgs};
pub use zip::{Zip, ZipArgs};
pub use zstd::{Zstd, ZstdArgs};
use crate::utils::Compressor;
pub fn compressor_from_str(s: &str) -> Option<Box<dyn Compressor>> {
match s {
"tar" => Some(Box::<Tar>::default()),
"gzip" | "gz" => Some(Box::<Gzip>::default()),
"xz" => Some(Box::<Xz>::default()),
"bzip2" | "bz2" => Some(Box::<Bzip2>::default()),
"zip" => Some(Box::<Zip>::default()),
"zstd" | "zst" => Some(Box::<Zstd>::default()),
"lz4" => Some(Box::<Lz4>::default()),
_ => None,
}
}