akiflow_rust 0.3.1

Wrapper for the rrule crate to be used in Akiflow.
Documentation
use std::time::Instant;
// use chrono::{DateTime, Utc};
// use rrule::{RRuleSet};
mod data;
use crate::data::TEST_RECURRENCES_DATETIME;
use crate::data::TEST_RECURRENCES_DATE;


fn main() -> Result<(), Box<dyn std::error::Error>>{
   let start = 1735686000000.0; // 01/01/2025 00:00
   let end   = 1767225599000.0; // 31/12/2025 23:59

  let _result = akiflow_rust::rrule_utils::between_datetime_f64(1747827000000.0,"America/New_York","RRULE:FREQ=DAILY;UNTIL=20250521T235959",start, end);
   println!("{:?}", _result);

// return;
    let t0 = Instant::now();

    for (dt_start, tzid, recurrence) in TEST_RECURRENCES_DATETIME {
    //         println!("Testing recurrence: {} {}", dt_start, recurrence);
        let _result = akiflow_rust::rrule_utils::between_datetime_f64(*dt_start,tzid,recurrence,start, end);
    //         println!("{:?}", result);
    }
    println!(" took {:.3} ms", t0.elapsed().as_secs_f64() * 1e3);

    let t1 = Instant::now();
    for (dt_start, tzid, recurrence) in TEST_RECURRENCES_DATETIME {
    //         println!("Testing recurrence: {} {}", dt_start, recurrence);
        let _result = akiflow_rust::rrule_utils::between_datetime_i64(*dt_start as i64,tzid,recurrence,start as i64, end as i64);
    //         println!("{:?}", result);
    }
    println!(" took {:.3} ms", t1.elapsed().as_secs_f64() * 1e3);

    let t2 = Instant::now();
    for (dt_start, recurrence) in TEST_RECURRENCES_DATE {
//         println!("Testing recurrence: {} {}", dt_start, recurrence);
        let _result = akiflow_rust::rrule_utils::between_date_f64(*dt_start,recurrence,start, end);
//         println!("{:?}", result);
    }
    println!(" took {:.3} ms", t2.elapsed().as_secs_f64() * 1e3);

    let t3 = Instant::now();
    for (dt_start, recurrence) in TEST_RECURRENCES_DATE {
//         println!("Testing recurrence: {} {}", dt_start, recurrence);
        let _result = akiflow_rust::rrule_utils::between_date_i64(*dt_start,recurrence,start as i64, end as i64);
//         println!("{:?}", result);
    }
    println!(" took {:.3} ms", t3.elapsed().as_secs_f64() * 1e3);

    let id =  akiflow_rust::crypto_utils::generate_stable_uuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8","baba2")?;
    println!("Testing crypto {id}");
    return Ok(());
}