diff --git a/lib/lib.rs b/lib/lib.rs index 08e78ca..53d5454 100644 --- a/lib/lib.rs +++ b/lib/lib.rs @@ -1,4 +1,6 @@ -#![doc(html_logo_url = "https://raw.githubusercontent.com/lucodear/lool/master/.github/img/logo.svg")] +#![doc( + html_logo_url = "https://raw.githubusercontent.com/lucodear/lool/master/.github/img/logo.svg" +)] #[cfg(feature = "cli")] pub mod cli; diff --git a/lib/sched/rules/recurrent/rule_unit.rs b/lib/sched/rules/recurrent/rule_unit.rs index 862b20d..a0575c7 100644 --- a/lib/sched/rules/recurrent/rule_unit.rs +++ b/lib/sched/rules/recurrent/rule_unit.rs @@ -38,19 +38,17 @@ where if *step == T::zero() || *step == T::one() { if *start < *end { - return value >= *start && value <= *end; + value >= *start && value <= *end } else { - return value >= *start || value <= *end; + value >= *start || value <= *end } + } else if *start < *end { + value >= *start + && value <= *end + && (value - *start) % *step == T::zero() } else { - if *start < *end { - return value >= *start - && value <= *end - && (value - *start) % *step == T::zero(); - } else { - return (value >= *start || value <= *end) - && (*start - value) % *step == T::zero(); - } + (value >= *start || value <= *end) + && (*start - value) % *step == T::zero() } } Rule::Many(matcher) => matcher.iter().any(|v| Self::_matches(&Rule::Val(*v), value)), diff --git a/lib/sched/utils/mod.rs b/lib/sched/utils/mod.rs index efe6409..8a7ebc3 100644 --- a/lib/sched/utils/mod.rs +++ b/lib/sched/utils/mod.rs @@ -27,7 +27,7 @@ pub fn parse_time(time: &str) -> Result<(u32, u32, u32)> { }; ensure!(seconds <= 59, INVALID_TIME_ERR); - Ok((hours as u32, minutes as u32, seconds as u32)) + Ok((hours, minutes, seconds)) } /// 🧉 » converts `hours` and `minutes` durations to total seconds @@ -59,10 +59,10 @@ pub fn tz_to_s(offset: &str) -> Result { NO_SIGN_ERR ); - let offset = if offset.starts_with("UTC") { - offset[3..].to_string() + let offset = if let Some(offset) = offset.strip_prefix("UTC") { + offset } else { - offset.to_string() + offset }; let sign = if offset.starts_with('+') { 1 } else { -1 };