put methods directly into generic definition

This commit is contained in:
Helmut Merz 2024-05-16 19:20:39 +02:00
parent b168015309
commit 723ae93c83

View file

@ -30,13 +30,16 @@
(params :initarg :params) (params :initarg :params)
(config :reader config :initarg :config))) (config :reader config :initarg :config)))
(defclass db-engine-pg (db-engine) ())
(defun make-engine () (defun make-engine ()
(let ((backend (getf *db-config* :backend))) (let ((backend (getf *db-config* :backend)))
(funcall (getf *backends* backend) *db-config*))) (funcall (getf *backends* backend) *db-config*)))
(defgeneric timestamp-to-sql (engine ts)) (defgeneric timestamp-to-sql (engine ts)
(:method ((engine db-engine) ts) ts)
(defmethod timestamp-to-sql ((engine db-engine) ts) ts) (:method ((engine db-engine-pg) ts)
(format nil "~a" (local-time:universal-to-timestamp ts))))
(defclass storage () (defclass storage ()
((engine :reader engine :initarg :engine) ((engine :reader engine :initarg :engine)
@ -98,7 +101,3 @@
:connect #'(lambda () :connect #'(lambda ()
(apply #'dbi:connect-cached db-type conn-args))))) (apply #'dbi:connect-cached db-type conn-args)))))
(defclass db-engine-pg (db-engine) ())
(defmethod timestamp-to-sql ((engine db-engine-pg) ts)
(format nil "~a" (local-time:universal-to-timestamp ts)))