chronos-parser-rs 0.1.382

A Rust crate for CROND parser.
Documentation
use chrono::{DateTime, TimeZone};

use crate::{CronEvaluator, Expr};

pub trait Specification<T>: Clone {
  fn is_satisfied_by(&self, arg: &T) -> bool;
}

#[derive(Debug, Clone)]
pub struct CronSpecification {
  expr: Expr,
}

impl CronSpecification {
  pub fn new(expr: Expr) -> Self {
    Self { expr }
  }
}

impl<Tz: TimeZone> Specification<DateTime<Tz>> for CronSpecification {
  fn is_satisfied_by(&self, datetime: &DateTime<Tz>) -> bool {
    CronEvaluator::new(datetime).eval(&self.expr)
  }
}