From fec434a4e2d0ff65510581e461d87a945d25759a Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Thu, 23 Oct 2025 10:17:00 +0300 Subject: Use serapeum's -> & defsubst --- src/serializing.lisp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/serializing.lisp') diff --git a/src/serializing.lisp b/src/serializing.lisp index e9c46f6..b40ac75 100644 --- a/src/serializing.lisp +++ b/src/serializing.lisp @@ -3,18 +3,21 @@ (defpackage :ukkoclot/src/serializing (:use :c2cl :iterate) (:import-from :log) + (:import-from :serapeum :->) (:import-from :str) (:local-nicknames (:jzon :com.inuoe.jzon)) (:export :fixup-args :fixup-value :parse-value :try-parse-value)) (in-package :ukkoclot/src/serializing) +;; TODO: Better types, input is an (alist t t) output is an (alist string t) +(-> fixup-args (list) list) (defun fixup-args (args) (iter (for (key . value) in args) (collect (cons (str:snake-case key) (fixup-value value))))) (defgeneric fixup-value (value) - (:documentation "Fixup outgoing *top-level* `value' before passing it to telegram.") + (:documentation "Fixup outgoing /top-level/ `value' before passing it to telegram.") (:method (value) (jzon:stringify value :pretty *print-pretty*)) (:method ((value null)) @@ -61,6 +64,7 @@ (t (error "I don't know how to parse complex type ~A!" type)))) +(-> try-parse-value (t t) (values boolean t &optional)) (defun try-parse-value (type json) (handler-case (values t (parse-value type json)) (error () (values nil nil)))) -- cgit v1.2.3