diff --git a/src/types/env/mod.rs b/src/types/env/mod.rs index 972254e..3934679 100644 --- a/src/types/env/mod.rs +++ b/src/types/env/mod.rs @@ -11,14 +11,8 @@ use serde::de::Error; use types::error::{AppError, AppErrorKind}; -enum_boilerplate!(Env ("env", InvalidEnv) { +enum_boilerplate!(Env ("env", Dev, InvalidEnv) { Dev => "dev", Prod => "production", Test => "test", }); - -impl Default for Env { - fn default() -> Self { - Env::Dev - } -} diff --git a/src/types/logging/mod.rs b/src/types/logging/mod.rs index 53e22bf..e4e5cc0 100644 --- a/src/types/logging/mod.rs +++ b/src/types/logging/mod.rs @@ -11,26 +11,14 @@ use serde::de::Error; use types::error::{AppError, AppErrorKind}; -enum_boilerplate!(LogLevel ("log level", InvalidLogLevel) { +enum_boilerplate!(LogLevel ("log level", Normal, InvalidLogLevel) { Normal => "normal", Debug => "debug", Critical => "critical", Off => "off", }); -impl Default for LogLevel { - fn default() -> Self { - LogLevel::Normal - } -} - -enum_boilerplate!(LogFormat ("log format", InvalidLogFormat) { +enum_boilerplate!(LogFormat ("log format", Mozlog, InvalidLogFormat) { Mozlog => "mozlog", Pretty => "pretty", }); - -impl Default for LogFormat { - fn default() -> Self { - LogFormat::Mozlog - } -} diff --git a/src/types/mod.rs b/src/types/mod.rs index 9b4f150..6581bf0 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -7,7 +7,7 @@ //! miscellaneous generally-used types. macro_rules! enum_boilerplate { - ($name:ident ($description:expr, $error:ident) { + ($name:ident ($description:expr, $default:ident, $error:ident) { $($variant:ident => $serialization:expr,)+ }) => { #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] @@ -25,6 +25,12 @@ macro_rules! enum_boilerplate { } } + impl std::default::Default for $name { + fn default() -> Self { + $name::$default + } + } + impl std::fmt::Display for $name { fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { write!(formatter, "{}", self.as_ref()) diff --git a/src/types/provider/mod.rs b/src/types/provider/mod.rs index cbfdbfa..b77d8d5 100644 --- a/src/types/provider/mod.rs +++ b/src/types/provider/mod.rs @@ -11,16 +11,10 @@ use serde::de::Error; use types::error::{AppError, AppErrorKind}; -enum_boilerplate!(Provider ("env", InvalidPayload) { +enum_boilerplate!(Provider ("env", Ses, InvalidPayload) { Mock => "mock", Sendgrid => "sendgrid", Ses => "ses", Smtp => "smtp", SocketLabs => "socketlabs", }); - -impl Default for Provider { - fn default() -> Self { - Provider::Ses - } -}