siafu 0.0.2

Ergonomic job scheduling library for Rust
Documentation
use std::time::SystemTime;
use cron::Schedule as CronSchedule;

pub enum ScheduleType {
    Once(SystemTime),
    Recurring(RecurringSchedule),
    Random(RandomSchedule),
    Cron(CronSchedule),
}

pub struct Schedule {
    pub schedule_type: ScheduleType,
    pub max_runs: Option<u32>,
    pub run_count: u32,
}

#[derive(Clone)]
pub struct RecurringSchedule {
    pub interval: RecurringInterval,
    pub next_run: SystemTime,
}

pub struct RandomSchedule {
    pub start_time: SystemTime,
    pub end_time: SystemTime,
}

#[derive(Debug,Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum RecurringInterval {
    Secondly(u32), 
    Minutely(u32),
    Hourly(u32),   
    Daily(u32),    
    Weekly(u32),   
    Monthly(u32),  
    Custom { 
        expression: String, 
        frequency: u32, 
    },
}