///|
pub(all) enum CronField {
All // *
Value(Int) // n
Range(Int, Int) // a-b
Step(CronField, Int) // a/b
List(Array[CronField]) // a,b,c
} derive(Eq, Debug)
///|
/// Represents a parsed cron expression with 5 fields.
pub(all) struct CronExpr {
minute : CronField
hour : CronField
day_of_month : CronField
month : CronField
day_of_week : CronField
} derive(Eq, Debug)
///|
pub fn CronExpr::new(
minute : CronField,
hour : CronField,
day_of_month : CronField,
month : CronField,
day_of_week : CronField,
) -> CronExpr {
{ minute, hour, day_of_month, month, day_of_week }
}
///|
/// Represents a specific time used for matching.
pub(all) struct Time {
mut year : Int
mut month : Int // 1-12
mut day : Int // 1-31
mut hour : Int // 0-23
mut minute : Int // 0-59
mut weekday : Int // 0-6 (Sunday is 0)
} derive(Eq, Debug)