website/src/lib/cache.lisp
2025-05-18 21:41:47 +09:00

15 lines
417 B
Common Lisp

(defpackage #:website/lib/cache
(:use #:cl)
(:import-from #:function-cache
#:defcached
#:clear-cache)
(:export #:memorize
#:clear-cache))
(in-package #:website/lib/cache)
(defmacro memorize (name)
(let ((origin (gensym)))
`(progn
(setf (fdefinition ',origin) (fdefinition ',name))
(defcached ,name (&rest args)
(apply #',origin args)))))