From ab2f5ae1f63ff9b880b64d6be16cf7332a0563e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 27 Apr 2020 23:02:34 +0200 Subject: Move events-between to datetime/vcomponent. --- module/output/html.scm | 12 ------------ module/vcomponent/datetime.scm | 13 +++++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/module/output/html.scm b/module/output/html.scm index f15776cb..d095493a 100644 --- a/module/output/html.scm +++ b/module/output/html.scm @@ -100,18 +100,6 @@ (values (datetime->string s fmt-str) (datetime->string e fmt-str))))])) -;; date, date, [sorted-stream events] → [list events] -(define (events-between start-date end-date events) - (define (overlaps e) - (timespan-overlaps? start-date (date+ end-date (date day: 1)) - (attr e 'DTSTART) (attr e 'DTEND))) - - (stream-filter overlaps - (get-stream-interval - overlaps - (lambda (e) (not (date< end-date (as-date (attr e 'DTSTART))))) - events))) - diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm index 745bf551..44776516 100644 --- a/module/vcomponent/datetime.scm +++ b/module/vcomponent/datetime.scm @@ -124,6 +124,19 @@ Event must have the DTSTART and DTEND attribute set." (as-datetime final)) #f)))) +;; date, date, [sorted-stream events] → [list events] +(define-public (events-between start-date end-date events) + (define (overlaps e) + (timespan-overlaps? start-date (date+ end-date (date day: 1)) + (attr e 'DTSTART) (attr e 'DTEND))) + + ((@ (srfi srfi-41) stream-filter) + overlaps + ((@ (srfi srfi-41 util) get-stream-interval) + overlaps + (lambda (e) (not (date< end-date (as-date (attr e 'DTSTART))))) + events))) + -- cgit v1.2.3