Primitive recurrence helpers.
The first pass supports simple daily, weekly, monthly, and yearly rules
without timezone handling.
Examples
use use_date::CalendarDate;
use use_recurrence::{RecurrenceFrequency, recurring_dates};
let start = CalendarDate::new(2024, 1, 31).unwrap();
let dates = recurring_dates(start, RecurrenceFrequency::Monthly, 1, 4).unwrap();
assert_eq!(dates[1], CalendarDate::new(2024, 2, 29).unwrap());
assert_eq!(dates[2], CalendarDate::new(2024, 3, 31).unwrap());
assert_eq!(dates[3], CalendarDate::new(2024, 4, 30).unwrap());