From a04865d9d871dd68a3d66415e1e0892d24bf9684 Mon Sep 17 00:00:00 2001 From: Yuvi Panda Date: Sun, 9 May 2021 16:09:39 +0530 Subject: Use an enum for dialect (#80) --- atuin-client/src/settings.rs | 21 ++++++++++++++++++++- src/command/stats.rs | 7 ++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs index 7ccbaf32..a2224cd8 100644 --- a/atuin-client/src/settings.rs +++ b/atuin-client/src/settings.rs @@ -19,9 +19,28 @@ pub enum SearchMode { FullText, } +// FIXME: Can use upstream Dialect enum if https://github.com/stevedonovan/chrono-english/pull/16 is merged +#[derive(Clone, Debug, Deserialize, Copy)] +pub enum Dialect { + #[serde(rename = "us")] + Us, + + #[serde(rename = "uk")] + Uk, +} + +impl From for chrono_english::Dialect { + fn from(d: Dialect) -> chrono_english::Dialect { + match d { + Dialect::Uk => chrono_english::Dialect::Uk, + Dialect::Us => chrono_english::Dialect::Us, + } + } +} + #[derive(Clone, Debug, Deserialize)] pub struct Settings { - pub dialect: String, + pub dialect: Dialect, pub auto_sync: bool, pub sync_address: String, pub sync_frequency: String, diff --git a/src/command/stats.rs b/src/command/stats.rs index 6aa54a2c..742202ae 100644 --- a/src/command/stats.rs +++ b/src/command/stats.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use chrono::prelude::*; use chrono::Duration; -use chrono_english::{parse_date_string, Dialect}; +use chrono_english::parse_date_string; use cli_table::{format::Justify, print_stdout, Cell, Style, Table}; use eyre::{eyre, Result}; @@ -84,10 +84,7 @@ impl Cmd { words.join(" ") }; - let start = match settings.dialect.to_lowercase().as_str() { - "uk" => parse_date_string(&words, Local::now(), Dialect::Uk)?, - _ => parse_date_string(&words, Local::now(), Dialect::Us)?, - }; + let start = parse_date_string(&words, Local::now(), settings.dialect.into())?; let end = start + Duration::days(1); let history = db.range(start.into(), end.into()).await?; -- cgit v1.2.3