From c391d76690be70a9b4bf29caf3b69d0c97f84b97 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 6 Dec 2021 11:01:21 +0000 Subject: [PATCH] Limit birthday range with FROM and UNTIL --- src/eval/command/birthday.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/eval/command/birthday.rs b/src/eval/command/birthday.rs index fdef33c..829160e 100644 --- a/src/eval/command/birthday.rs +++ b/src/eval/command/birthday.rs @@ -8,10 +8,12 @@ use super::super::EntryKind; impl<'a> CommandState<'a> { pub fn eval_birthday_spec(&mut self, spec: &BirthdaySpec) { - // This could be optimized by restricting the range via FROM and UNTIL, - // but I don't think that kind of optimization will be necessary any - // time soon. - for year in self.range.years() { + let range = match self.limit_from_until(self.range) { + Some(range) => range, + None => return, + }; + + for year in range.years() { let age = if spec.year_known { let age = year - spec.date.year(); if age < 0 {