std.object.framework.map-like

extend-map-like

macro

added in 3.0

(extend-map-like cls {:keys [read write proxy], :as opts})

creates an entry for map-like classes

(extend-map-like test.DogBuilder {:tag “build.dog” :write {:empty (fn ) :methods :class} :read :fields})

extend-map-read

added in 3.0

(extend-map-read cls {:keys [read include exclude]})

creates the forms for read methods

(extend-map-read ’test.Cat {:read :fields})

extend-map-write

added in 3.0

(extend-map-write cls {:keys [write]})

creates the forms for write methods

(extend-map-write ’test.Cat {:write {:methods :class}}) => ’{:methods (std.object.framework.write/write-setters test.Cat)}

key-selection

added in 3.0

(key-selection m include exclude)

selects map based on keys

(key-selection {:a 1 :b 2} :a nil) => {:a 1}

(key-selection {:a 1 :b 2} nil :a) => {:b 2}

read-proxy-functions

added in 3.0

(read-proxy-functions proxy)

creates a proxy access through a field in the object

(read-proxy-functions {:school :name :raw})

write-proxy-functions

added in 3.0

(write-proxy-functions proxy)

creates a proxy access through a field in the object

(write-proxy-functions {:school :name :raw})