pub mod tar;
use std::path::Path;
use anyhow::Result;
use super::Unarchiver;
use self::tar::TarUnarchiver;
#[derive(Debug, Clone)]
pub enum ArchiveKind {
Tar,
}
impl ArchiveKind {
pub fn default_extension(&self) -> &'static str {
match self {
ArchiveKind::Tar => "tar",
}
}
}
impl Unarchiver for ArchiveKind {
async fn unarchive<P: AsRef<Path>>(&self, path: P, out: P) -> Result<()> {
match self {
ArchiveKind::Tar => TarUnarchiver::new().unarchive(path, out).await,
}
}
async fn archive<P: AsRef<Path>>(&self, path: P, out: P) -> Result<()> {
match self {
ArchiveKind::Tar => TarUnarchiver::new().archive(path, out).await,
}
}
}