Start work on partial progresses coalesce.

This commit is contained in:
Dominik Pantůček 2023-06-23 22:42:18 +02:00
parent 7056b3a79b
commit 25f9143634
2 changed files with 31 additions and 1 deletions

View file

@ -63,7 +63,7 @@
(make-bank-transaction id date amount currency varsym message type
account bank specsym)))
;; Loads Fio bank accound statement.
;; Loads Fio bank account statement.
(define (bank-fio-parse fn)
(let ((csv (with-progress% #t fn (csv-parse fn))))
(if csv

View file

@ -41,6 +41,11 @@
run-with-progress%
with-progress%
progress%-advance
run-with-progresses%
with-progresses%
run-with-partial-progress%
with-partial-progress%
)
(import scheme
@ -178,6 +183,31 @@
echo? name
(lambda () body ...)))))
;; Runs multiple partial progresses
(define (run-with-progresses% echo? name proc)
(proc))
;; Syntax wrapper
(define-syntax with-progresses%
(syntax-rules ()
((_ echo? name body ...)
(run-with-progresses%
echo? name
(lambda () body ...)))))
;; Adds name to list of partial progress names, uses the same
;; parameters as run-with-progress%
(define (run-with-partial-progress% name proc)
(proc))
;; Syntax wrapper
(define-syntax with-partial-progress%
(syntax-rules ()
((_ name body ...)
(run-with-partial-progress%
name
(lambda () body ...)))))
;; If the program uses progress module, disable buffering
(set-buffering-mode! (current-output-port) #:none)