From 4ee292d1d4f5ffa1eff8601744ae0f3887550ecc Mon Sep 17 00:00:00 2001 From: fdai7375 Date: Thu, 2 Feb 2023 19:51:09 +0100 Subject: [PATCH] feat: move time formatting in seperate function --- src/builtins/time.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/builtins/time.rs b/src/builtins/time.rs index 58cc866..0e79262 100644 --- a/src/builtins/time.rs +++ b/src/builtins/time.rs @@ -1,4 +1,4 @@ -use chrono::Local; +use chrono::{DateTime, Local}; use crate::error::ShellError; @@ -10,17 +10,17 @@ impl Builtin for Time { fn execute(&mut self, _: &mut BuiltinConfig, args: Vec) -> Result<(), ShellError> { let time = Local::now(); - if args.is_empty() { - println!("{}", time.format("%T")); - return Ok(()); - } - - let time_string = match args[0].as_str() { - "RFC2822" => time.to_rfc2822(), - "RFC3339" => time.to_rfc3339(), - _ => time.format("%T").to_string(), - }; + let formatting = args.get(0).cloned().unwrap_or_default(); + let time_string = format_time(time, &formatting); println!("{time_string}"); Ok(()) } } + +fn format_time(time: DateTime, formatting: &str) -> String { + match formatting { + "RFC2822" => time.to_rfc2822(), + "RFC3339" => time.to_rfc3339(), + _ => time.format("%T").to_string(), + } +}