From 908c520b352aba36f52eae7dd63903122b82aa3a Mon Sep 17 00:00:00 2001 From: Avril Date: Tue, 4 Aug 2020 01:14:22 +0100 Subject: [PATCH] system call mod --- src/interval.rs | 26 +++++++++++++------------- src/sys/mod.rs | 2 ++ 2 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 src/sys/mod.rs diff --git a/src/interval.rs b/src/interval.rs index 3f0d459..871cea3 100644 --- a/src/interval.rs +++ b/src/interval.rs @@ -44,21 +44,21 @@ impl Unit fn multiplier(&self) -> u64 { use lazy_static::lazy_static; use std::collections::HashMap; + - use Unit::*; - lazy_static! { - static ref MUL_TABLE: HashMap = { - let mut map = HashMap::with_capacity(8); - map.insert(Second, 1000); - map.insert(Minute, Second.multiplier() * 60); - map.insert(Hour, Minute.multiplier() * 60); - map.insert(Day, Hour.multiplier() * 24); - map.insert(Week, Day.multiplier() * 7); - map.insert(Year, Week.multiplier() * 52); - map.insert(Aeon, Year.multiplier() * 1000000); - map - }; + fn calc_table(&self) -> { + use Unit::*; + match self { + Second => 1000, + Minute => Second.multiplier() * 60, + Hour => Minute.multiplier() * 60, + Day => Hour.multiplier() * 24, + Week => Day.multiplier() * 7, + Year => Week.multiplier() * 52, + Aeon => Year.multiplier() * 1000000, + } } + *MUL_TABLE.get(&self).unwrap() } } diff --git a/src/sys/mod.rs b/src/sys/mod.rs new file mode 100644 index 0000000..c5d584a --- /dev/null +++ b/src/sys/mod.rs @@ -0,0 +1,2 @@ +use super::*; +