RESP

is a wrapper around the Redis Serialization Protocol. You can create all types—though creating arrays is a little unsightly due to the absence of recursive types—, stringify the built types into strings using str, and decoding from the string protocol using from-string.

If you want your types to be supported when encoding, you’ll have to implement the interface to-redis, the signature of which is (Fn [a] RESP)).

Arr

instantiate

(Fn [(Array String)] RESP)

creates a Arr.

Err

instantiate

(Fn [String] RESP)

creates a Err.

Integer

instantiate

(Fn [Int] RESP)

creates a Integer.

Null

instantiate

(Fn [] RESP)

creates a Null.

Str

instantiate

(Fn [String] RESP)

creates a Str.

copy

instantiate

(Fn [(Ref RESP a)] RESP)

copies a RESP.

from-string

defn

(Fn [(Ref String a)] (Result RESP String))

                    (from-string s)
                

converts a RESP string into a RESP data structure.

get-tag

instantiate

(Fn [(Ref RESP a)] Int)

Gets the tag from a RESP.

prn

instantiate

(Fn [(Ref RESP a)] String)

converts a RESP to a string.

str

defn

(Fn [(Ref RESP a)] String)

                    (str r)
                

converts a RESP to a string.