Skip to main content

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};