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