scron/lib.rs
1//! A cron expression parser and schedule explorer
2//! # Example
3//! ```
4//! extern crate chrono;
5//! extern crate scron;
6//!
7//! use scron::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
36extern crate chrono;
37extern crate nom;
38
39#[macro_use]
40extern crate error_chain;
41
42mod time_unit;
43mod schedule;
44mod task;
45pub mod error;
46
47pub use schedule::Schedule;
48pub use time_unit::TimeUnitField;
49pub use task::Task;
50pub use task::Tasks;