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