1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
#![cfg_attr(feature = "clippy", feature(plugin))] #![cfg_attr(feature = "clippy", plugin(clippy))] //! A cron expression parser and schedule explorer. //! //! In addition to the regular expressions, you can also use the following shortcut expressions with Schedule::from_str, //! such as `@yearly` `@monthly` `@weekly` `@daily` `@hourly` `@minutely` `@secondly`, //! make cron- Expression Iterator. //! # Example //! ``` //! extern crate chrono; //! extern crate cron_clock; //! //! use cron_clock::Schedule; //! use chrono::Utc; //! use std::str::FromStr; //! //! fn main() { //! // sec min hour day of month month day of week year //! let expression = "0 30 9,12,15 1,15 May-Aug Mon,Wed,Fri 2018/2"; //! let schedule = Schedule::from_str(expression).unwrap(); //! println!("Upcoming fire times:"); //! for datetime in schedule.upcoming(Utc).take(10) { //! println!("-> {}", datetime); //! } //! } //! //! /* //! Upcoming fire times: //! -> 2018-06-01 09:30:00 UTC //! -> 2018-06-01 12:30:00 UTC //! -> 2018-06-01 15:30:00 UTC //! -> 2018-06-15 09:30:00 UTC //! -> 2018-06-15 12:30:00 UTC //! -> 2018-06-15 15:30:00 UTC //! -> 2018-08-01 09:30:00 UTC //! -> 2018-08-01 12:30:00 UTC //! -> 2018-08-01 15:30:00 UTC //! -> 2018-08-15 09:30:00 UTC //! */ //! ``` extern crate chrono; extern crate nom; #[macro_use] extern crate error_chain; #[cfg(test)] extern crate chrono_tz; pub(crate) mod error; pub(crate) mod schedule; pub(crate) mod time_unit; pub use chrono::offset::TimeZone; pub use chrono::{FixedOffset, Local, Utc}; pub use schedule::{Schedule, ScheduleIterator, ScheduleIteratorOwned}; pub use time_unit::TimeUnitSpec;