From 78164ecafe2bbbe3202b47d4f876d7f82ff0448f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Tue, 4 Apr 2023 22:39:45 +0200 Subject: [PATCH] Make load-members create more complex structure. --- src/members-base.scm | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/members-base.scm b/src/members-base.scm index b2a73e5..64b10b0 100644 --- a/src/members-base.scm +++ b/src/members-base.scm @@ -65,26 +65,29 @@ (define (load-members dn . opts) (let ((progress? (and (not (null? opts)) (car opts)))) - (with-progress% - progress? "members" - (let* ((fss (load-members-dir dn)) - (tot (sub1 (length (dict-keys fss)))) - (mb0 (dict-map - (lambda (symfn symlinks prg) - (progress%-advance (/ prg tot)) - (members-dir-load-member dn - symfn - symlinks)) - fss)) - (mb1 (dict-reduce (make-dict) - (lambda (acc symfn mr) - (dict-set acc (dict-ref mr 'id) mr)) - mb0)) - (mb (dict-reduce '() - (lambda (acc id mr) - (cons mr acc)) - mb1))) - mb)))) + (make-dict + `((members + . + ,(with-progress% + progress? "members" + (let* ((fss (load-members-dir dn)) + (tot (sub1 (length (dict-keys fss)))) + (mb0 (dict-map + (lambda (symfn symlinks prg) + (progress%-advance (/ prg tot)) + (members-dir-load-member dn + symfn + symlinks)) + fss)) + (mb1 (dict-reduce (make-dict) + (lambda (acc symfn mr) + (dict-set acc (dict-ref mr 'id) mr)) + mb0)) + (mb (dict-reduce '() + (lambda (acc id mr) + (cons mr acc)) + mb1))) + mb))))))) ;; Gets member based by generic predicate (define (find-member-by-predicate mb pred)