com.rpl.specter.macros

declarepath

macro

(declarepath name)(declarepath name params)

defcollector

macro

(defcollector name & body)

defnav

macro

(defnav name & body)

defnavconstructor

macro

(defnavconstructor name & args)

defpathedfn

macro

(defpathedfn name & args)

defprotocolpath

macro

(defprotocolpath name)(defprotocolpath name params)

extend-protocolpath

macro

(extend-protocolpath protpath & extensions)

fixed-pathed-nav

macro

(fixed-pathed-nav bindings impl1 impl2)
This helper is used to define navigators that take in a fixed number of other
paths as input. Those paths may require late-bound params, so this helper
will create a parameterized navigator if that is the case. If no late-bound params
are required, then the result is executable.

nav

macro

(nav params impl1 impl2)
Defines a navigator with late bound parameters. This navigator can be precompiled
with other navigators without knowing the parameters. When precompiled with other
navigators, the resulting path takes in parameters for all navigators in the path
that needed parameters (in the order in which they were declared).

paramscollector

macro

(paramscollector params impl)
Defines a Collector with late bound parameters. This collector can be precompiled
with other selectors without knowing the parameters. When precompiled with other
selectors, the resulting selector takes in parameters for all selectors in the path
that needed parameters (in the order in which they were declared).
 

paramsfn

macro

(paramsfn params [structure-sym] & impl)

path

macro

(path & path)
Same as calling comp-paths, except it caches the composition of the static part
of the path for later re-use (when possible). For almost all idiomatic uses
of Specter provides huge speedup. This macro is automatically used by the
select/transform/setval/replace-in/etc. macros.

pathed-collector

macro

(pathed-collector [name path] impl)
This helper is used to define collectors that take in a single selector
paths as input. That path may require late-bound params, so this helper
will create a parameterized selector if that is the case. If no late-bound params
are required, then the result is executable.

providepath

macro

(providepath name apath)

replace-in

macro

(replace-in apath transform-fn structure & args)

select

macro

(select apath structure)

select-first

macro

(select-first apath structure)

select-one

macro

(select-one apath structure)

select-one!

macro

(select-one! apath structure)

setval

macro

(setval apath aval structure)

transform

macro

(transform apath transform-fn structure)

variable-pathed-nav

macro

(variable-pathed-nav [latepaths-seq-sym paths-seq] impl1 impl2)
This helper is used to define navigators that take in a variable number of other
paths as input. Those paths may require late-bound params, so this helper
will create a parameterized navigator if that is the case. If no late-bound params
are required, then the result is executable.