Function: parseedn-print
parseedn-print is a byte-compiled function defined in parseedn.el.
Signature
(parseedn-print DATUM)
Documentation
Insert DATUM as EDN into the current buffer.
DATUM can be any Emacs Lisp value.
Source Code
;; Defined in ~/.emacs.d/elpa/parseedn-20231203.1909/parseedn.el
(defun parseedn-print (datum)
"Insert DATUM as EDN into the current buffer.
DATUM can be any Emacs Lisp value."
(cond
((or (null datum) (numberp datum))
(prin1 datum (current-buffer)))
((stringp datum)
(insert "\"")
(seq-doseq (char datum)
(insert (cond
((eq ?\t char) "\\t")
((eq ?\f char) "\\f")
((eq ?\" char) "\\\"")
((eq ?\r char) "\\r")
((eq ?\n char) "\\n")
((eq ?\\ char) "\\\\")
(t (char-to-string char)))))
(insert "\""))
((eq t datum)
(insert "true"))
((or (keywordp datum) (symbolp datum))
(insert (symbol-name datum)))
((vectorp datum) (insert "[") (parseedn-print-seq datum) (insert "]"))
((or (hash-table-p datum) (parseedn-alist-p datum))
(insert "{")
(parseedn-print-hash-or-alist datum)
(insert "}"))
((parseedn-plist-p datum)
(insert "{")
(parseedn-print-plist datum)
(insert "}"))
((consp datum)
(cond
((not (listp (cdr datum))) ; dotted pair
(error "Don't know how to print: %s" datum))
((eq 'edn-set (car datum))
(insert "#{") (parseedn-print-seq (cadr datum)) (insert "}"))
((eq 'edn-uuid (car datum))
(insert "#uuid ") (parseedn-print-seq (cdr datum)))
((eq 'edn-inst (car datum))
(insert "#inst ") (parseedn-print-inst (cdr datum)))
((eq 'edn-tagged-literal (car datum))
(insert "#" (symbol-name (cadr datum)) " ")
(parseedn-print (caddr datum)))
(t (insert "(") (parseedn-print-seq datum) (insert ")"))))
(t (error "Don't know how to print: %s" datum))))