An attempt at a task macro.

This is not complete: need to resolve context references.
This commit is contained in:
Ray Miller 2025-01-06 17:47:43 +00:00
parent 87f243b16a
commit b7e4b9dc74

View file

@ -20,9 +20,18 @@
(register task-register)
(triggers task-triggers))
(define* (task description action #:key (register #f) (triggers '()))
(define* (task% description action #:key (register #f) (triggers '()))
(make-task description action register triggers))
(define-syntax task
(syntax-rules ()
((_ description (action arg ...) kwarg ...)
(task%
description
(lambda (conn ctx)
(action conn ctx (assoc-ref ctx arg) ...))
kwarg ...))))
(define (run-task conn ctx task)
(match task
(($ <task> description action register triggers)