From 669c39c59f84d6ebd48f972094e61253fb99b6f7 Mon Sep 17 00:00:00 2001 From: Maximiliano Sandoval Date: Wed, 14 Aug 2024 09:19:55 +0200 Subject: [PATCH] time: remove lazy_static dependency Signed-off-by: Maximiliano Sandoval --- proxmox-time/Cargo.toml | 2 +- proxmox-time/src/time_span.rs | 94 +++++++++++++++++------------------ 2 files changed, 47 insertions(+), 49 deletions(-) diff --git a/proxmox-time/Cargo.toml b/proxmox-time/Cargo.toml index 17282507..d863fa0c 100644 --- a/proxmox-time/Cargo.toml +++ b/proxmox-time/Cargo.toml @@ -6,13 +6,13 @@ edition.workspace = true license.workspace = true repository.workspace = true description = "time utilities and TmEditor" +rust-version.workspace = true exclude.workspace = true [dependencies] anyhow.workspace = true bitflags.workspace = true -lazy_static.workspace = true nom = "7" [target.'cfg(not(target_arch="wasm32"))'.dependencies] diff --git a/proxmox-time/src/time_span.rs b/proxmox-time/src/time_span.rs index e580c3d6..2ccdf08b 100644 --- a/proxmox-time/src/time_span.rs +++ b/proxmox-time/src/time_span.rs @@ -1,79 +1,77 @@ use std::collections::HashMap; +use std::sync::LazyLock; use anyhow::Error; -use lazy_static::lazy_static; use nom::{bytes::complete::take_while1, character::complete::space0, combinator::opt}; use crate::parse_helpers::{parse_complete_line, parse_error, parse_u64, IResult}; -lazy_static! { - static ref TIME_SPAN_UNITS: HashMap<&'static str, f64> = { - let mut map = HashMap::new(); +static TIME_SPAN_UNITS: LazyLock> = LazyLock::new(|| { + let mut map = HashMap::new(); - let second = 1.0; + let second = 1.0; - map.insert("seconds", second); - map.insert("second", second); - map.insert("sec", second); - map.insert("s", second); + map.insert("seconds", second); + map.insert("second", second); + map.insert("sec", second); + map.insert("s", second); - let msec = second / 1000.0; + let msec = second / 1000.0; - map.insert("msec", msec); - map.insert("ms", msec); + map.insert("msec", msec); + map.insert("ms", msec); - let usec = msec / 1000.0; + let usec = msec / 1000.0; - map.insert("usec", usec); - map.insert("us", usec); - map.insert("µs", usec); + map.insert("usec", usec); + map.insert("us", usec); + map.insert("µs", usec); - let nsec = usec / 1000.0; + let nsec = usec / 1000.0; - map.insert("nsec", nsec); - map.insert("ns", nsec); + map.insert("nsec", nsec); + map.insert("ns", nsec); - let minute = second * 60.0; + let minute = second * 60.0; - map.insert("minutes", minute); - map.insert("minute", minute); - map.insert("min", minute); - map.insert("m", minute); + map.insert("minutes", minute); + map.insert("minute", minute); + map.insert("min", minute); + map.insert("m", minute); - let hour = minute * 60.0; + let hour = minute * 60.0; - map.insert("hours", hour); - map.insert("hour", hour); - map.insert("hr", hour); - map.insert("h", hour); + map.insert("hours", hour); + map.insert("hour", hour); + map.insert("hr", hour); + map.insert("h", hour); - let day = hour * 24.0; + let day = hour * 24.0; - map.insert("days", day); - map.insert("day", day); - map.insert("d", day); + map.insert("days", day); + map.insert("day", day); + map.insert("d", day); - let week = day * 7.0; + let week = day * 7.0; - map.insert("weeks", week); - map.insert("week", week); - map.insert("w", week); + map.insert("weeks", week); + map.insert("week", week); + map.insert("w", week); - let month = 30.44 * day; + let month = 30.44 * day; - map.insert("months", month); - map.insert("month", month); - map.insert("M", month); + map.insert("months", month); + map.insert("month", month); + map.insert("M", month); - let year = 365.25 * day; + let year = 365.25 * day; - map.insert("years", year); - map.insert("year", year); - map.insert("y", year); + map.insert("years", year); + map.insert("year", year); + map.insert("y", year); - map - }; -} + map +}); /// A time spans defines a time duration #[derive(Default, Clone, Debug)]