From b7e4b9dc74c5eaef8983e5ff1ac74866f2b2a04a Mon Sep 17 00:00:00 2001 From: Ray Miller Date: Mon, 6 Jan 2025 17:47:43 +0000 Subject: [PATCH] An attempt at a task macro. This is not complete: need to resolve context references. --- modules/ordo/task.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/ordo/task.scm b/modules/ordo/task.scm index 4e2529f..60c3619 100644 --- a/modules/ordo/task.scm +++ b/modules/ordo/task.scm @@ -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 (($ description action register triggers)