diff options
| author | Joe Carstairs <me@joeac.net> | 2026-01-17 07:47:36 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-01-17 11:49:56 +0000 |
| commit | 70b326ddbe47fbec3d6516fa223ecde41988a5d2 (patch) | |
| tree | b704610b4ba44294a14005cebd700abac2c2b6bf /transformers/actualbudget_transformer | |
| parent | 6679a7ab6a52df9bca907f154cc6b069ebc83a6d (diff) | |
ActualbudgetDate::from_ymd()
Diffstat (limited to 'transformers/actualbudget_transformer')
| -rw-r--r-- | transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs index aaab5e8..08b648e 100644 --- a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs +++ b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs @@ -54,6 +54,15 @@ impl ActualbudgetDate { ActualbudgetDate(i.into()) } + pub fn from_ymd<T, S, U>(year: T, month: S, day: U) -> Self + where + T: Into<i64>, + S: Into<i64>, + U: Into<i64>, + { + Self(year.into() * 10_000 + month.into() * 100 + day.into()) + } + fn date_part(&self) -> DatePart { if self.0 < 10000000 { DatePart::MonthOfYear @@ -88,3 +97,16 @@ impl FromSql<Integer, Sqlite> for ActualbudgetDate { Ok(ActualbudgetDate(int.into())) } } + +#[cfg(test)] +mod test { + use crate::ActualbudgetDate; + + #[test] + fn when_from_ymd_2026_01_16_then_constructs_2026_01_16() { + let actualbudget_date = ActualbudgetDate::from_ymd(2026, 1, 16); + assert_eq!(actualbudget_date.year(), "2026"); + assert_eq!(actualbudget_date.month(), "01"); + assert_eq!(actualbudget_date.day(), "16"); + } +} |
