src/middleware/core.lisp @ dcaf8468adb1
Move middleware utils to the middleware module
author |
Steve Losh <steve@stevelosh.com> |
date |
Sat, 05 Dec 2015 20:35:38 +0000 |
parents |
15af562c7bca |
children |
3e9db801d234 |
(in-package #:nrepl)
(defvar *middleware* (fset:empty-map))
(defmacro handle-op (message op fallback &rest body)
`(if (equal ,op (fset:lookup ,message "op"))
(progn ,@body)
(funcall ,fallback ,message)))
(defmacro define-middleware (name op message-binding &rest body)
(let ((fallback (gensym)))
`(defun ,name (,fallback)
(lambda (,message-binding)
(handle-op ,message-binding ,op ,fallback
,@body)))))