cron_macro_codegen/
lib.rs

1mod cron_macro_codegen;
2
3extern crate proc_macro;
4use cron_macro_codegen::impl_method_cron;
5use proc_macro::TokenStream;
6
7///
8/// for example:
9///
10///     #[cron("* */10 * * * *")]
11///     fn func(){...}
12///     The scheduling format is:
13///         sec   min   hour   day of month   month   day of week   year
14///         *     *     *      *              *       *             *
15///     Time is specified for UTC and not your local timezone.
16///
17///     example:
18///     0 0 * * * * // top of every hour of every day
19///     0 0/30 8-10 * * * //8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day
20///     0 0 8-10 * * * 2022 // every ten seconds at 2022
21///
22///
23///     lazy_static::lazy_static!{
24///         static ref CONFIG: T = T::new();
25///     }
26///
27///     #[cron("${CONFIG.cron}")]
28///     fn func() ->{...}
29///
30///
31#[proc_macro_attribute]
32pub fn cron(attr: TokenStream, input: TokenStream) -> TokenStream {
33    impl_method_cron(attr, input)
34}