mod convert;
mod error;
mod meal_record;
mod storage;
use crate::convert::convert_date_to_timestamp;
use chrono::NaiveDate;
pub use convert::{convert_to_timestamps, parse_date};
pub use error::Error;
pub use meal_record::MealRecord;
pub use storage::Storage;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Clone)]
pub struct Period {
first_day_timestamp: i64,
last_day_timestamp: i64,
first_date: NaiveDate,
last_date: NaiveDate,
}
impl Period {
pub fn new(s: &str) -> Result<Self> {
let dates = parse_date(s)?;
let first_date = dates.iter().next().unwrap();
let last_date = dates.iter().last().unwrap();
let first_day_timestamp = convert_date_to_timestamp(first_date);
let last_day_timestamp = convert_date_to_timestamp(last_date);
Ok(Self {
first_day_timestamp,
last_day_timestamp,
first_date: *first_date,
last_date: *last_date,
})
}
pub fn first_date(&self) -> NaiveDate {
self.first_date
}
pub fn first_day_timestamp(&self) -> i64 {
self.first_day_timestamp
}
pub fn last_date(&self) -> NaiveDate {
self.last_date
}
pub fn last_day_timestamp(&self) -> i64 {
self.last_day_timestamp
}
}