From 2d717e4d0e78bd2132886a3339804f05f816f67a Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Sun, 7 Apr 2019 13:15:48 +0200 Subject: Use strum on Enums to reduce boilerplate --- src/archive.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/archive.rs') diff --git a/src/archive.rs b/src/archive.rs index f588d56..55a80b5 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -5,27 +5,21 @@ use libflate::gzip::Encoder; use serde::Deserialize; use std::io; use std::path::PathBuf; +use strum_macros::{Display, EnumIter, EnumString}; use tar::Builder; -use strum_macros::EnumIter; use crate::errors; /// Available compression methods -#[derive(Debug, Deserialize, Clone, EnumIter)] +#[derive(Deserialize, Clone, EnumIter, EnumString, Display)] pub enum CompressionMethod { /// TAR GZ #[serde(alias = "targz")] + #[strum(serialize = "targz")] TarGz, } impl CompressionMethod { - pub fn to_string(&self) -> String { - match &self { - CompressionMethod::TarGz => "targz", - } - .to_string() - } - pub fn extension(&self) -> String { match &self { CompressionMethod::TarGz => "tar.gz", -- cgit v1.2.3