From 8ed18a551696ba4f89d7dfbdeaa879b21e079d33 Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Mon, 1 Apr 2019 20:36:35 +0200 Subject: Color schemes --- src/archive.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/archive.rs') diff --git a/src/archive.rs b/src/archive.rs index 206d252..b1119f0 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -25,6 +25,11 @@ impl CompressionMethod { .to_string() } + /// Lists compression methods + pub fn get_compression_methods() -> Vec { + vec![CompressionMethod::TarGz] + } + pub fn extension(&self) -> String { match &self { CompressionMethod::TarGz => "tar.gz", -- cgit v1.2.3 From c24986640589df2aa5b2f7360cc8bea71ed49fbb Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Sun, 7 Apr 2019 12:21:58 +0200 Subject: Use strum_macros::EnumIter instead of manually listing Enum variants --- src/archive.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/archive.rs') diff --git a/src/archive.rs b/src/archive.rs index b1119f0..f588d56 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -6,11 +6,12 @@ use serde::Deserialize; use std::io; use std::path::PathBuf; use tar::Builder; +use strum_macros::EnumIter; use crate::errors; /// Available compression methods -#[derive(Debug, Deserialize, Clone)] +#[derive(Debug, Deserialize, Clone, EnumIter)] pub enum CompressionMethod { /// TAR GZ #[serde(alias = "targz")] @@ -25,11 +26,6 @@ impl CompressionMethod { .to_string() } - /// Lists compression methods - pub fn get_compression_methods() -> Vec { - vec![CompressionMethod::TarGz] - } - pub fn extension(&self) -> String { match &self { CompressionMethod::TarGz => "tar.gz", -- cgit v1.2.3 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 From 1f9d59249d13ee9c20c02c1055a243e223ac9f2a Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Sun, 7 Apr 2019 14:00:02 +0200 Subject: Use serialize_all on CompressionMethods enum --- src/archive.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/archive.rs') diff --git a/src/archive.rs b/src/archive.rs index 55a80b5..7cde5d8 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -12,10 +12,11 @@ use crate::errors; /// Available compression methods #[derive(Deserialize, Clone, EnumIter, EnumString, Display)] +#[serde(rename_all = "snake_case")] +#[strum(serialize_all = "snake_case")] pub enum CompressionMethod { + /// TAR GZ - #[serde(alias = "targz")] - #[strum(serialize = "targz")] TarGz, } -- cgit v1.2.3 From 8c4e98adb7981f6a832d0ce1d25c131d70929a84 Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Sun, 7 Apr 2019 14:09:01 +0200 Subject: Cargo fmt --- src/archive.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'src/archive.rs') diff --git a/src/archive.rs b/src/archive.rs index 7cde5d8..4703c0d 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -15,7 +15,6 @@ use crate::errors; #[serde(rename_all = "snake_case")] #[strum(serialize_all = "snake_case")] pub enum CompressionMethod { - /// TAR GZ TarGz, } -- cgit v1.2.3