The herodotus Reference Manual

This is the herodotus Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:40:52 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 herodotus

Wrapper around Yason JSON parser/encoder with convenience methods for CLOS

Maintainer

<>

Author

Henry Steere

License

BSD

Long Description

Provides a define-serialiser macro that defines both an encoder and decoder for a common lisp class. Allows one to easily specify case convention for fields in a JSON object as either snake case, camel case, or screaming snake case (with apologies to the rust library serde).

Version

1.0.0

Dependencies
  • yason (system).
  • alexandria (system).
  • cl-ppcre (system).
Source

herodotus.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 herodotus/src

Source

herodotus.asd.

Parent Component

herodotus (system).

Child Component

herodotus.lisp (file).


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 herodotus/herodotus.asd

Source

herodotus.asd.

Parent Component

herodotus (system).

ASDF Systems

herodotus.


4.1.2 herodotus/src/herodotus.lisp

Source

herodotus.asd.

Parent Component

src (module).

Packages

herodotus.

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 herodotus

Source

herodotus.lisp.

Use List
  • common-lisp.
  • yason.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Macros

Macro: define-json-model (name slots &optional case-type)
Package

herodotus.

Source

herodotus.lisp.


6.1.2 Generic functions

Generic Function: to-json (class)
Package

herodotus.

Source

herodotus.lisp.

Methods
Method: to-json (thing)
Method: to-json ((thing (eql nil)))
Method: to-json ((thing (eql t)))

6.2 Internals


6.2.1 Macros

Macro: define-encoder (class-name slots case-fn)
Package

herodotus.

Source

herodotus.lisp.

Macro: define-json-constructor (class-name slots case-fn)
Package

herodotus.

Source

herodotus.lisp.

Macro: define-parser (class-name slots case-fn)
Package

herodotus.

Source

herodotus.lisp.

Macro: define-to-hash (class-name slots case-fn)
Package

herodotus.

Source

herodotus.lisp.

Macro: within-package (package-name &rest body)
Package

herodotus.

Source

herodotus.lisp.


6.2.2 Ordinary functions

Function: camel-case (str)
Package

herodotus.

Source

herodotus.lisp.

Function: get-slot (slot-spec)
Package

herodotus.

Source

herodotus.lisp.

Function: get-slot-defs (slot-specs)
Package

herodotus.

Source

herodotus.lisp.

Function: get-slot-name (slot)
Package

herodotus.

Source

herodotus.lisp.

Function: get-slot-type (slot)
Package

herodotus.

Source

herodotus.lisp.

Function: has-custom-key (x)
Package

herodotus.

Source

herodotus.lisp.

Function: has-object-constructor (slot)
Package

herodotus.

Source

herodotus.lisp.

Function: json-package-name (class-name)
Package

herodotus.

Source

herodotus.lisp.

Function: make-hash-parser-name (class-name)
Package

herodotus.

Source

herodotus.lisp.

Function: make-init-arg (slot-spec)
Package

herodotus.

Source

herodotus.lisp.

Function: make-keys (slots case-fn)
Package

herodotus.

Source

herodotus.lisp.

Function: make-keyword (sym)
Package

herodotus.

Source

herodotus.lisp.

Function: make-object-slot (init-arg key slot json-obj)
Package

herodotus.

Source

herodotus.lisp.

Function: make-standard-slot (init-arg key json-obj)
Package

herodotus.

Source

herodotus.lisp.

Function: pascal-case (str)
Package

herodotus.

Source

herodotus.lisp.

Function: screaming-snake-case (str)
Package

herodotus.

Source

herodotus.lisp.

Function: select-case-function (case-type)
Package

herodotus.

Source

herodotus.lisp.

Function: slot-accessor (slot-description)
Package

herodotus.

Source

herodotus.lisp.

Function: snake-case (str)
Package

herodotus.

Source

herodotus.lisp.


6.2.3 Generic functions

Generic Function: object-to-hash (class)
Package

herodotus.

Source

herodotus.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   C   D   F   G   H   J   M   O   P   S   T   W  
Index Entry  Section

C
camel-case: Private ordinary functions

D
define-encoder: Private macros
define-json-constructor: Private macros
define-json-model: Public macros
define-parser: Private macros
define-to-hash: Private macros

F
Function, camel-case: Private ordinary functions
Function, get-slot: Private ordinary functions
Function, get-slot-defs: Private ordinary functions
Function, get-slot-name: Private ordinary functions
Function, get-slot-type: Private ordinary functions
Function, has-custom-key: Private ordinary functions
Function, has-object-constructor: Private ordinary functions
Function, json-package-name: Private ordinary functions
Function, make-hash-parser-name: Private ordinary functions
Function, make-init-arg: Private ordinary functions
Function, make-keys: Private ordinary functions
Function, make-keyword: Private ordinary functions
Function, make-object-slot: Private ordinary functions
Function, make-standard-slot: Private ordinary functions
Function, pascal-case: Private ordinary functions
Function, screaming-snake-case: Private ordinary functions
Function, select-case-function: Private ordinary functions
Function, slot-accessor: Private ordinary functions
Function, snake-case: Private ordinary functions

G
Generic Function, object-to-hash: Private generic functions
Generic Function, to-json: Public generic functions
get-slot: Private ordinary functions
get-slot-defs: Private ordinary functions
get-slot-name: Private ordinary functions
get-slot-type: Private ordinary functions

H
has-custom-key: Private ordinary functions
has-object-constructor: Private ordinary functions

J
json-package-name: Private ordinary functions

M
Macro, define-encoder: Private macros
Macro, define-json-constructor: Private macros
Macro, define-json-model: Public macros
Macro, define-parser: Private macros
Macro, define-to-hash: Private macros
Macro, within-package: Private macros
make-hash-parser-name: Private ordinary functions
make-init-arg: Private ordinary functions
make-keys: Private ordinary functions
make-keyword: Private ordinary functions
make-object-slot: Private ordinary functions
make-standard-slot: Private ordinary functions
Method, to-json: Public generic functions
Method, to-json: Public generic functions
Method, to-json: Public generic functions

O
object-to-hash: Private generic functions

P
pascal-case: Private ordinary functions

S
screaming-snake-case: Private ordinary functions
select-case-function: Private ordinary functions
slot-accessor: Private ordinary functions
snake-case: Private ordinary functions

T
to-json: Public generic functions
to-json: Public generic functions
to-json: Public generic functions
to-json: Public generic functions

W
within-package: Private macros


A.3 Variables