timex 0.3.0-beta.1

Generate date times as event similar to Microsoft calender or Google calender based on the given parameters.
Documentation
use anyhow::{Result, Ok, bail};

use crate::{
    model::{ScheduleDetails, RepeatEvery},
    errors::ScheduleError
};



pub fn simple_preprocessing(detail: &ScheduleDetails) -> Result<()> {
    // preprocessing step
    match detail.repeat_every {
        RepeatEvery::Day => {
            if detail.repeat_every_number >= 32 {
                bail!(ScheduleError::DaysWithMoreThan31AreNotAllowed());
            }
            Ok(())
        }
        RepeatEvery::Week => {
            Ok(())
        }
        RepeatEvery::Month => {
            if detail.on_day_value_for_month.is_some()
                && detail.on_day_value_for_month.unwrap() >= 32
            {
                bail!(ScheduleError::DaysWithMoreThan31AreNotAllowed());
            }
            Ok(())
        }
        RepeatEvery::Year => {
            Ok(())
        }
    }
    
}