english-to-cron

Crates.ioenglish-to-cron
lib.rsenglish-to-cron
version0.1.2
sourcesrc
created_at2024-09-11 07:32:44.282066
updated_at2024-09-12 09:10:32.032381
descriptionconverts natural language into cron expressions
homepagehttps://docs.rs/english-to-cron
repositoryhttps://github.com/kaplanelad/english-to-cron
max_upload_size
id1371651
size79,650
Elad Kaplan (kaplanelad)

documentation

https://docs.rs/english-to-cron

README

English to CronJob Syntax Converter

Crates.io Docs.rs

This project is inspired by the library natural-cron, which converts natural language into cron expressions. english-to-cron brings similar functionality to the Rust ecosystem, allowing developers to easily schedule cron jobs using English text.

Features

  • Converts various English text descriptions into cron job syntax.
  • Supports complex patterns including specific days, time ranges, and more.
  • Handles multiple time formats including AM/PM and 24-hour notation.

Installation

Add the following line to your Cargo.toml under [dependencies]:

english_to_cron = "0.1.0" 

Usage

Simply provide an English phrase describing the schedule, and the library will return the corresponding cron job syntax.

use english_to_cron::str_cron_syntax;

fn main() {
    assert_eq!(str_cron_syntax("every 15 seconds").unwrap(), "0/15 * * * * ? *");
    assert_eq!(str_cron_syntax("every minute").unwrap(), "0 * * * * ? *");
    assert_eq!(str_cron_syntax("every day at 4:00 pm").unwrap(), "0 0 16 */1 * ? *");
    assert_eq!(str_cron_syntax("at 10:00 am").unwrap(), "0 0 10 * * ? *");
    assert_eq!(str_cron_syntax("Run at midnight on the 1st and 15th of the month").unwrap(), "0 0 0 1,15 * ? *");
    assert_eq!(str_cron_syntax("on Sunday at 12:00").unwrap(), "0 0 12 ? * SUN *");
}

Full List of Supported English Patterns

English Phrase CronJob Syntax
every 15 seconds 0/15 * * * * ? *
run every minute 0 * * * * ? *
fire every day at 4:00 pm 0 0 16 */1 * ? *
at 10:00 am 0 0 10 * * ? *
run at midnight on the 1st and 15th of the month 0 0 0 1,15 * ? *
On Sunday at 12:00 0 0 12 ? * SUN *
7pm every Thursday 0 0 19 ? * THU *
midnight on Tuesdays 0 0 ? * TUE *

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to help improve the library.

Commit count: 0

cargo fmt