24 lines
566 B
Scheme
24 lines
566 B
Scheme
(define-module (ordo handler)
|
|
#:use-module (ice-9 match)
|
|
#:use-module (srfi srfi-9) ; records
|
|
#:use-module (logging logger)
|
|
#:export (handler
|
|
handler?
|
|
handler-name
|
|
handler-action
|
|
run-handler))
|
|
|
|
(define-record-type <handler>
|
|
(make-handler name action)
|
|
handler?
|
|
(name handler-name)
|
|
(action handler-action))
|
|
|
|
(define (handler name action)
|
|
(make-handler name action))
|
|
|
|
(define (run-handler c h)
|
|
(match h
|
|
(($ <handler> name action)
|
|
(log-msg 'NOTICE "Running handler: " name)
|
|
(action c))))
|