MCPcopy Create free account
hub / github.com/Botloader/botloader / wrap_timer

Function wrap_timer

components/scheduler/src/interval_timer_manager.rs:234–255  ·  view source on GitHub ↗
(timer: IntervalTimer)

Source from the content-addressed store, hash-verified

232}
233
234fn 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
257impl WrappedIntervalTimer {
258 fn is_triggered(&self, t: DateTime<Utc>) -> bool {

Callers 1

init_timerMethod · 0.85

Calls 1

next_run_timeMethod · 0.80

Tested by

no test coverage detected