(timer: IntervalTimer)
| 232 | } |
| 233 | |
| 234 | fn wrap_timer(timer: IntervalTimer) -> Result<WrappedIntervalTimer, Error> { |
| 235 | let interval_type = match &timer.interval { |
| 236 | IntervalType::Minutes(mins) => ParsedIntervalType::Minutes(*mins), |
| 237 | IntervalType::Cron(c) => { |
| 238 | let parsed = |
| 239 | cron::Schedule::from_str(format!("0 {c}").as_str()).map_err(Error::Cron)?; |
| 240 | ParsedIntervalType::Cron(c.clone(), Box::new(parsed)) |
| 241 | } |
| 242 | }; |
| 243 | |
| 244 | let next = if let Some(next) = interval_type.next_run_time(timer.last_run) { |
| 245 | next |
| 246 | } else { |
| 247 | return Err(Error::NoNextTime); |
| 248 | }; |
| 249 | |
| 250 | Ok(WrappedIntervalTimer { |
| 251 | inner: timer, |
| 252 | next_run: next, |
| 253 | parsed_type: interval_type, |
| 254 | }) |
| 255 | } |
| 256 | |
| 257 | impl WrappedIntervalTimer { |
| 258 | fn is_triggered(&self, t: DateTime<Utc>) -> bool { |
no test coverage detected