jiff_cron/
lib.rs

1#![deny(rust_2018_idioms)]
2#![deny(rustdoc::broken_intra_doc_links)]
3#![allow(clippy::needless_doctest_main)]
4//! A cron expression parser and schedule explorer built with jiff.
5//!
6//! # Example
7//!
8//! ```
9//! use jiff_cron::Schedule;
10//! use jiff::tz::TimeZone;
11//! use std::str::FromStr;
12//!
13//! fn main() {
14//!   //               sec  min   hour   day of month   month   day of week   year
15//!   let expression = "0   30   9,12,15     1,15       May-Aug  Mon,Wed,Fri  2018/2";
16//!   let schedule = Schedule::from_str(expression).unwrap();
17//!   println!("Upcoming fire times:");
18//!   for datetime in schedule.upcoming(TimeZone::UTC).take(10) {
19//!     println!("-> {}", datetime);
20//!   }
21//! }
22//!
23//! /*
24//! Upcoming fire times:
25//! -> 2018-06-01 09:30:00 UTC
26//! -> 2018-06-01 12:30:00 UTC
27//! -> 2018-06-01 15:30:00 UTC
28//! -> 2018-06-15 09:30:00 UTC
29//! -> 2018-06-15 12:30:00 UTC
30//! -> 2018-06-15 15:30:00 UTC
31//! -> 2018-08-01 09:30:00 UTC
32//! -> 2018-08-01 12:30:00 UTC
33//! -> 2018-08-01 15:30:00 UTC
34//! -> 2018-08-15 09:30:00 UTC
35//! */
36//! ```
37
38/// Error types used by this crate.
39pub mod error;
40
41mod ordinal;
42mod parsing;
43mod queries;
44mod schedule;
45mod specifier;
46mod time_unit;
47
48pub use crate::schedule::{OwnedScheduleIterator, Schedule, ScheduleIterator};
49pub use crate::time_unit::TimeUnitSpec;