Some refactoring
* Don't export record field setters (unless required) * Remove get- prefix from record getters * Introduce handlers (simplified tasks)
This commit is contained in:
parent
297d779ea4
commit
52f011267b
6 changed files with 89 additions and 51 deletions
|
@ -2,26 +2,26 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (make-context
|
||||
#:export (context
|
||||
context?
|
||||
get-context-scratch-dir
|
||||
set-context-scratch-dir!
|
||||
context-scratch-dir
|
||||
add-context-triggers!
|
||||
get-context-triggers
|
||||
set-context-triggers!
|
||||
get-context-vars
|
||||
set-context-vars!
|
||||
context-triggered?
|
||||
register-context-var!
|
||||
context-ref
|
||||
resolve-context-ref
|
||||
resolve-context-refs))
|
||||
|
||||
(define-record-type <context>
|
||||
(make-context)
|
||||
(make-context scratch-dir vars)
|
||||
context?
|
||||
(scratch-dir get-context-scratch-dir set-context-scratch-dir!)
|
||||
(vars get-context-vars set-context-vars!)
|
||||
(triggers get-context-triggers set-context-triggers!))
|
||||
(scratch-dir context-scratch-dir set-context-scratch-dir!)
|
||||
(vars context-vars set-context-vars!)
|
||||
(triggers context-triggers set-context-triggers!))
|
||||
|
||||
(define* (context #:key scratch-dir init-vars)
|
||||
(make-context scratch-dir init-vars))
|
||||
|
||||
(define-record-type <context-ref>
|
||||
(context-ref name)
|
||||
|
@ -30,7 +30,7 @@
|
|||
|
||||
(define (resolve-context-ref ctx v)
|
||||
(if (context-ref? v)
|
||||
(assoc-ref (get-context-vars ctx) (var-name v))
|
||||
(assoc-ref (context-vars ctx) (var-name v))
|
||||
v))
|
||||
|
||||
(define (resolve-context-refs ctx args)
|
||||
|
@ -38,7 +38,11 @@
|
|||
|
||||
(define (add-context-triggers! ctx triggers)
|
||||
(when triggers
|
||||
(set-context-triggers! ctx (fold cons (or (get-context-triggers ctx) '()) triggers))))
|
||||
(set-context-triggers! ctx
|
||||
(apply lset-adjoin equal? (or (context-triggers ctx) '()) triggers))))
|
||||
|
||||
(define (context-triggered? ctx trigger)
|
||||
(find (lambda (t) (equal? t trigger)) (context-triggers ctx)))
|
||||
|
||||
(define (register-context-var! ctx var-name val)
|
||||
(set-context-vars! ctx (assoc-set! (get-context-vars ctx) var-name val)))
|
||||
(set-context-vars! ctx (assoc-set! (context-vars ctx) var-name val)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue