153 lines
No EOL
57 KiB
HTML
153 lines
No EOL
57 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
|
"">
|
|
<html><head><meta charset="UTF-8" /><link href="css/default.css" rel="stylesheet" type="text/css" /><script src="js/jquery.min.js" type="text/javascript"></script><script src="js/page_effects.js" type="text/javascript"></script><title>com.rpl.specter documentation</title></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Specter</span> <span class="project-version">0.13.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>com</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>rpl</span></div></div></li><li class="depth-3 current"><a href="com.rpl.specter.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>specter</span></div></a></li><li class="depth-4 branch"><a href="com.rpl.specter.protocols.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>protocols</span></div></a></li><li class="depth-4 branch"><a href="com.rpl.specter.transients.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>transients</span></div></a></li><li class="depth-4"><a href="com.rpl.specter.zipper.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>zipper</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="com.rpl.specter.html#var-ALL"><div class="inner"><span>ALL</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-ATOM"><div class="inner"><span>ATOM</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-BEGINNING"><div class="inner"><span>BEGINNING</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-codewalker"><div class="inner"><span>codewalker</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-collect"><div class="inner"><span>collect</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-collect-one"><div class="inner"><span>collect-one</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-collected.3F"><div class="inner"><span>collected?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-collector"><div class="inner"><span>collector</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-comp-paths"><div class="inner"><span>comp-paths</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-multi-transform"><div class="inner"><span>compiled-multi-transform</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-replace-in"><div class="inner"><span>compiled-replace-in</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-select"><div class="inner"><span>compiled-select</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-select-any"><div class="inner"><span>compiled-select-any</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-select-first"><div class="inner"><span>compiled-select-first</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-select-one"><div class="inner"><span>compiled-select-one</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-select-one.21"><div class="inner"><span>compiled-select-one!</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-selected-any.3F"><div class="inner"><span>compiled-selected-any?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-setval"><div class="inner"><span>compiled-setval</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-transform"><div class="inner"><span>compiled-transform</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-compiled-traverse"><div class="inner"><span>compiled-traverse</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-cond-path"><div class="inner"><span>cond-path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-continue-then-stay"><div class="inner"><span>continue-then-stay</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-continuous-subseqs"><div class="inner"><span>continuous-subseqs</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-declarepath"><div class="inner"><span>declarepath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defcollector"><div class="inner"><span>defcollector</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defdynamicnav"><div class="inner"><span>defdynamicnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defmacroalias"><div class="inner"><span>defmacroalias</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defnav"><div class="inner"><span>defnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defprotocolpath"><div class="inner"><span>defprotocolpath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-defrichnav"><div class="inner"><span>defrichnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-DISPENSE"><div class="inner"><span>DISPENSE</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-dynamic-param.3F"><div class="inner"><span>dynamic-param?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-dynamicnav"><div class="inner"><span>dynamicnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-END"><div class="inner"><span>END</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-extend-protocolpath"><div class="inner"><span>extend-protocolpath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-extend-protocolpath*"><div class="inner"><span>extend-protocolpath*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-filterer"><div class="inner"><span>filterer</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-FIRST"><div class="inner"><span>FIRST</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-if-path"><div class="inner"><span>if-path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-keypath"><div class="inner"><span>keypath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-LAST"><div class="inner"><span>LAST</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-late-bound-collector"><div class="inner"><span>late-bound-collector</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-late-bound-nav"><div class="inner"><span>late-bound-nav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-late-bound-richnav"><div class="inner"><span>late-bound-richnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-late-path"><div class="inner"><span>late-path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-local-declarepath"><div class="inner"><span>local-declarepath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-MAP-VALS"><div class="inner"><span>MAP-VALS</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-META"><div class="inner"><span>META</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-multi-path"><div class="inner"><span>multi-path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-multi-transform"><div class="inner"><span>multi-transform</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-multi-transform*"><div class="inner"><span>multi-transform*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-must"><div class="inner"><span>must</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-nav"><div class="inner"><span>nav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-NIL-.3ELIST"><div class="inner"><span>NIL->LIST</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-NIL-.3ESET"><div class="inner"><span>NIL->SET</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-nil-.3Eval"><div class="inner"><span>nil->val</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-NIL-.3EVECTOR"><div class="inner"><span>NIL->VECTOR</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-NONE"><div class="inner"><span>NONE</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-not-selected.3F"><div class="inner"><span>not-selected?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-parser"><div class="inner"><span>parser</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-path"><div class="inner"><span>path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-pred"><div class="inner"><span>pred</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-providepath"><div class="inner"><span>providepath</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-putval"><div class="inner"><span>putval</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-recursive-path"><div class="inner"><span>recursive-path</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-replace-in"><div class="inner"><span>replace-in</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-replace-in*"><div class="inner"><span>replace-in*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-richnav"><div class="inner"><span>richnav</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select"><div class="inner"><span>select</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select*"><div class="inner"><span>select*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-any"><div class="inner"><span>select-any</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-any*"><div class="inner"><span>select-any*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-first"><div class="inner"><span>select-first</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-first*"><div class="inner"><span>select-first*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-one"><div class="inner"><span>select-one</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-one.21"><div class="inner"><span>select-one!</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-one.21*"><div class="inner"><span>select-one!*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-select-one*"><div class="inner"><span>select-one*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-selected-any.3F"><div class="inner"><span>selected-any?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-selected-any.3F*"><div class="inner"><span>selected-any?*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-selected.3F"><div class="inner"><span>selected?</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-setval"><div class="inner"><span>setval</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-setval*"><div class="inner"><span>setval*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-srange"><div class="inner"><span>srange</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-srange-dynamic"><div class="inner"><span>srange-dynamic</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-STAY"><div class="inner"><span>STAY</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-stay-then-continue"><div class="inner"><span>stay-then-continue</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-STOP"><div class="inner"><span>STOP</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-submap"><div class="inner"><span>submap</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-subselect"><div class="inner"><span>subselect</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-subset"><div class="inner"><span>subset</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-terminal"><div class="inner"><span>terminal</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-terminal-val"><div class="inner"><span>terminal-val</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-transform"><div class="inner"><span>transform</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-transform*"><div class="inner"><span>transform*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-transformed"><div class="inner"><span>transformed</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-traverse"><div class="inner"><span>traverse</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-traverse*"><div class="inner"><span>traverse*</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-VAL"><div class="inner"><span>VAL</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-view"><div class="inner"><span>view</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-walker"><div class="inner"><span>walker</span></div></a></li><li class="depth-1"><a href="com.rpl.specter.html#var-with-inline-debug"><div class="inner"><span>with-inline-debug</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">com.rpl.specter</h1><div class="doc"><pre class="plaintext"></pre></div><div class="public anchor" id="var-ALL"><h3>ALL</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to every element of the collection. For maps navigates to
|
|
a vector of `[key value]`.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L593">view source</a></div></div><div class="public anchor" id="var-ATOM"><h3>ATOM</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to atom value.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L804">view source</a></div></div><div class="public anchor" id="var-BEGINNING"><h3>BEGINNING</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to the empty subsequence before the first element of the collection.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L665">view source</a></div></div><div class="public anchor" id="var-codewalker"><h3>codewalker</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Like `walker` but maintains metadata of any forms traversed.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L728">view source</a></div></div><div class="public anchor" id="var-collect"><h3>collect</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Adds the result of running select with the given path on the
|
|
current value to the collected vals.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L934">view source</a></div></div><div class="public anchor" id="var-collect-one"><h3>collect-one</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Adds the result of running select-one with the given path on the
|
|
current value to the collected vals.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L944">view source</a></div></div><div class="public anchor" id="var-collected.3F"><h3>collected?</h3><h4 class="type">macro</h4><div class="usage"><code>(collected? params & body)</code></div><div class="doc"><pre class="plaintext">Creates a filter function navigator that takes in all the collected values
|
|
as input. For arguments, can use `(collected? [a b] ...)` syntax to look
|
|
at each collected value as individual arguments, or `(collected? v ...)` syntax
|
|
to capture all the collected values as a single vector.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L354">view source</a></div></div><div class="public anchor" id="var-collector"><h3>collector</h3><h4 class="type">macro</h4><div class="usage"><code>(collector params [_ [_ structure-sym] & body])</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L38">view source</a></div></div><div class="public anchor" id="var-comp-paths"><h3>comp-paths</h3><div class="usage"><code>(comp-paths & apath)</code></div><div class="doc"><pre class="plaintext">Returns a compiled version of the given path for use with
|
|
compiled-{select/transform/setval/etc.} functions. This can compile navigators
|
|
(defined with `defnav`) without their parameters, and the resulting compiled
|
|
path will require parameters for all such navigators in the order in which
|
|
they were declared.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L424">view source</a></div></div><div class="public anchor" id="var-compiled-multi-transform"><h3>compiled-multi-transform</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of `multi-transform` that takes in a path precompiled with `comp-paths`
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L512">view source</a></div></div><div class="public anchor" id="var-compiled-replace-in"><h3>compiled-replace-in</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of replace-in that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L533">view source</a></div></div><div class="public anchor" id="var-compiled-select"><h3>compiled-select</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of select that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L435">view source</a></div></div><div class="public anchor" id="var-compiled-select-any"><h3>compiled-select-any</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of select-any that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L469">view source</a></div></div><div class="public anchor" id="var-compiled-select-first"><h3>compiled-select-first</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of select-first that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L460">view source</a></div></div><div class="public anchor" id="var-compiled-select-one"><h3>compiled-select-one</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of select-one that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L444">view source</a></div></div><div class="public anchor" id="var-compiled-select-one.21"><h3>compiled-select-one!</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of select-one! that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L452">view source</a></div></div><div class="public anchor" id="var-compiled-selected-any.3F"><h3>compiled-selected-any?</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of selected-any? that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L482">view source</a></div></div><div class="public anchor" id="var-compiled-setval"><h3>compiled-setval</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of setval that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L525">view source</a></div></div><div class="public anchor" id="var-compiled-transform"><h3>compiled-transform</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of transform that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L503">view source</a></div></div><div class="public anchor" id="var-compiled-traverse"><h3>compiled-traverse</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Version of traverse that takes in a path precompiled with comp-paths
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L492">view source</a></div></div><div class="public anchor" id="var-cond-path"><h3>cond-path</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Takes in alternating cond-path path cond-path path...
|
|
Tests the structure if selecting with cond-path returns anything.
|
|
If so, it uses the following path for this portion of the navigation.
|
|
Otherwise, it tries the next cond-path. If nothing matches, then the structure
|
|
is not selected.
|
|
|
|
The input paths may be parameterized, in which case the result of cond-path
|
|
will be parameterized in the order of which the parameterized navigators
|
|
were declared.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L1021">view source</a></div></div><div class="public anchor" id="var-continue-then-stay"><h3>continue-then-stay</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the provided path and then to the current element. This can be used
|
|
to implement post-order traversal.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L1067">view source</a></div></div><div class="public anchor" id="var-continuous-subseqs"><h3>continuous-subseqs</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to every continuous subsequence of elements matching `pred`
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L654">view source</a></div></div><div class="public anchor" id="var-declarepath"><h3>declarepath</h3><h4 class="type">macro</h4><div class="usage"><code>(declarepath name)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L75">view source</a></div></div><div class="public anchor" id="var-defcollector"><h3>defcollector</h3><h4 class="type">macro</h4><div class="usage"><code>(defcollector name & body)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L48">view source</a></div></div><div class="public anchor" id="var-defdynamicnav"><h3>defdynamicnav</h3><h4 class="type">macro</h4><div class="usage"><code>(defdynamicnav name & args)</code></div><div class="doc"><pre class="plaintext">Defines a function that can choose what navigator to use at runtime based on
|
|
the dynamic context. The arguments will either be static values or
|
|
objects satisfying `dynamic-param?`. Use `late-bound-nav` to produce a runtime
|
|
navigator that uses the values of the dynamic params. See `selected?` for
|
|
an illustrative example of dynamic navs.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L121">view source</a></div></div><div class="public anchor" id="var-defmacroalias"><h3>defmacroalias</h3><h4 class="type">macro</h4><div class="usage"><code>(defmacroalias name target)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L29">view source</a></div></div><div class="public anchor" id="var-defnav"><h3>defnav</h3><h4 class="type">macro</h4><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L36">view source</a></div></div><div class="public anchor" id="var-defprotocolpath"><h3>defprotocolpath</h3><h4 class="type">macro</h4><div class="usage"><code>(defprotocolpath name)</code><code>(defprotocolpath name params)</code></div><div class="doc"><pre class="plaintext">Defines a navigator that chooses the path to take based on the type
|
|
of the value at the current point. May be specified with parameters to
|
|
specify that all extensions must require that number of parameters.
|
|
|
|
Currently not available for ClojureScript.
|
|
|
|
Example of usage:
|
|
(defrecord SingleAccount [funds])
|
|
(defrecord FamilyAccount [single-accounts])
|
|
|
|
(defprotocolpath FundsPath)
|
|
(extend-protocolpath FundsPath
|
|
SingleAccount :funds
|
|
FamilyAccount [ALL FundsPath]
|
|
)
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L370">view source</a></div></div><div class="public anchor" id="var-defrichnav"><h3>defrichnav</h3><h4 class="type">macro</h4><div class="usage"><code>(defrichnav name params & impls)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L45">view source</a></div></div><div class="public anchor" id="var-DISPENSE"><h3>DISPENSE</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Drops all collected values for subsequent navigation.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L967">view source</a></div></div><div class="public anchor" id="var-dynamic-param.3F"><h3>dynamic-param?</h3><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L548">view source</a></div></div><div class="public anchor" id="var-dynamicnav"><h3>dynamicnav</h3><h4 class="type">macro</h4><div class="usage"><code>(dynamicnav & args)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L118">view source</a></div></div><div class="public anchor" id="var-END"><h3>END</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to the empty subsequence after the last element of the collection.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L676">view source</a></div></div><div class="public anchor" id="var-extend-protocolpath"><h3>extend-protocolpath</h3><h4 class="type">macro</h4><div class="usage"><code>(extend-protocolpath protpath & extensions)</code></div><div class="doc"><pre class="plaintext">Used in conjunction with `defprotocolpath`. See [[defprotocolpath]].
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L413">view source</a></div></div><div class="public anchor" id="var-extend-protocolpath*"><h3>extend-protocolpath*</h3><div class="usage"><code>(extend-protocolpath* protpath-prot extensions)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L406">view source</a></div></div><div class="public anchor" id="var-filterer"><h3>filterer</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to a view of the current sequence that only contains elements that
|
|
match the given path. An element matches the selector path if calling select
|
|
on that element with the path yields anything other than an empty sequence.
|
|
|
|
The input path may be parameterized, in which case the result of filterer
|
|
will be parameterized in the order of which the parameterized selectors
|
|
were declared.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L849">view source</a></div></div><div class="public anchor" id="var-FIRST"><h3>FIRST</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to the first element of the collection. If the collection is
|
|
empty navigation is stopped at this point.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L626">view source</a></div></div><div class="public anchor" id="var-if-path"><h3>if-path</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Like cond-path, but with if semantics.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L976">view source</a></div></div><div class="public anchor" id="var-keypath"><h3>keypath</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the specified key, navigating to nil if it does not exist.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L758">view source</a></div></div><div class="public anchor" id="var-LAST"><h3>LAST</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to the last element of the collection. If the collection is
|
|
empty navigation is stopped at this point.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L620">view source</a></div></div><div class="public anchor" id="var-late-bound-collector"><h3>late-bound-collector</h3><h4 class="type">macro</h4><div class="usage"><code>(late-bound-collector bindings impl)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L65">view source</a></div></div><div class="public anchor" id="var-late-bound-nav"><h3>late-bound-nav</h3><h4 class="type">macro</h4><div class="usage"><code>(late-bound-nav bindings & impls)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L62">view source</a></div></div><div class="public anchor" id="var-late-bound-richnav"><h3>late-bound-richnav</h3><h4 class="type">macro</h4><div class="usage"><code>(late-bound-richnav bindings & impls)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L68">view source</a></div></div><div class="public anchor" id="var-late-path"><h3>late-path</h3><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L547">view source</a></div></div><div class="public anchor" id="var-local-declarepath"><h3>local-declarepath</h3><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L553">view source</a></div></div><div class="public anchor" id="var-MAP-VALS"><h3>MAP-VALS</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to each value of the map. This is more efficient than
|
|
navigating via [ALL LAST]</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L603">view source</a></div></div><div class="public anchor" id="var-META"><h3>META</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the metadata of the structure, or nil if
|
|
the structure has no metadata or may not contain metadata.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L925">view source</a></div></div><div class="public anchor" id="var-multi-path"><h3>multi-path</h3><div class="usage"></div><div class="doc"><pre class="plaintext">A path that branches on multiple paths. For updates,
|
|
applies updates to the paths in order.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L1040">view source</a></div></div><div class="public anchor" id="var-multi-transform"><h3>multi-transform</h3><h4 class="type">macro</h4><div class="usage"><code>(multi-transform apath structure)</code></div><div class="doc"><pre class="plaintext">Just like `transform` but expects transform functions to be specified
|
|
inline in the path using `terminal`. Error is thrown if navigation finishes
|
|
at a non-`terminal` navigator. `terminal-val` is a wrapper around `terminal` and is
|
|
the `multi-transform` equivalent of `setval`.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L321">view source</a></div></div><div class="public anchor" id="var-multi-transform*"><h3>multi-transform*</h3><div class="usage"><code>(multi-transform* path structure)</code></div><div class="doc"><pre class="plaintext">Just like `transform` but expects transform functions to be specified
|
|
inline in the path using `terminal`. Error is thrown if navigation finishes
|
|
at a non-`terminal` navigator. `terminal-val` is a wrapper around `terminal` and is
|
|
the `multi-transform` equivalent of `setval`.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L516">view source</a></div></div><div class="public anchor" id="var-must"><h3>must</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the key only if it exists in the map.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L768">view source</a></div></div><div class="public anchor" id="var-nav"><h3>nav</h3><h4 class="type">macro</h4><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L35">view source</a></div></div><div class="public anchor" id="var-NIL-.3ELIST"><h3>NIL->LIST</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to '() if the value is nil. Otherwise it stays
|
|
navigated at the current value.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L913">view source</a></div></div><div class="public anchor" id="var-NIL-.3ESET"><h3>NIL->SET</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to #{} if the value is nil. Otherwise it stays
|
|
navigated at the current value.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L907">view source</a></div></div><div class="public anchor" id="var-nil-.3Eval"><h3>nil->val</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the provided val if the structure is nil. Otherwise it stays
|
|
navigated at the structure.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L897">view source</a></div></div><div class="public anchor" id="var-NIL-.3EVECTOR"><h3>NIL->VECTOR</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to [] if the value is nil. Otherwise it stays
|
|
navigated at the current value.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L919">view source</a></div></div><div class="public anchor" id="var-NONE"><h3>NONE</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Global value used to indicate no elements selected during
|
|
[[select-any]].</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L472">view source</a></div></div><div class="public anchor" id="var-not-selected.3F"><h3>not-selected?</h3><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L834">view source</a></div></div><div class="public anchor" id="var-parser"><h3>parser</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigate to the result of running `parse-fn` on the value. For
|
|
transforms, the transformed value then has `unparse-fn` run on
|
|
it to get the final value at this point.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L792">view source</a></div></div><div class="public anchor" id="var-path"><h3>path</h3><h4 class="type">macro</h4><div class="usage"><code>(path & path)</code></div><div class="doc"><pre class="plaintext">Same as calling comp-paths, except it caches the composition of the static parts
|
|
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.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L203">view source</a></div></div><div class="public anchor" id="var-pred"><h3>pred</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Keeps the element only if it matches the supplied predicate. This is the
|
|
late-bound parameterized version of using a function directly in a path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L875">view source</a></div></div><div class="public anchor" id="var-providepath"><h3>providepath</h3><h4 class="type">macro</h4><div class="usage"><code>(providepath name apath)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L78">view source</a></div></div><div class="public anchor" id="var-putval"><h3>putval</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Adds an external value to the collected vals. Useful when additional arguments
|
|
are required to the transform function that would otherwise require partial
|
|
application or a wrapper function.
|
|
|
|
e.g., incrementing val at path [:a :b] by 3:
|
|
(transform [:a :b (putval 3)] + some-map)</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L954">view source</a></div></div><div class="public anchor" id="var-recursive-path"><h3>recursive-path</h3><h4 class="type">macro</h4><div class="usage"><code>(recursive-path params self-sym path)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L81">view source</a></div></div><div class="public anchor" id="var-replace-in"><h3>replace-in</h3><h4 class="type">macro</h4><div class="usage"><code>(replace-in apath transform-fn structure & args)</code></div><div class="doc"><pre class="plaintext">Similar to transform, except returns a pair of [transformed-structure sequence-of-user-ret].
|
|
The transform-fn in this case is expected to return [ret user-ret]. ret is
|
|
what's used to transform the data structure, while user-ret will be added to the user-ret sequence
|
|
in the final return. replace-in is useful for situations where you need to know the specific values
|
|
of what was transformed in the data structure.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L344">view source</a></div></div><div class="public anchor" id="var-replace-in*"><h3>replace-in*</h3><div class="usage"><code>(replace-in* path transform-fn structure & {:keys [merge-fn], :or {merge-fn concat}})</code></div><div class="doc"><pre class="plaintext">Similar to transform, except returns a pair of [transformed-structure sequence-of-user-ret].
|
|
The transform-fn in this case is expected to return [ret user-ret]. ret is
|
|
what's used to transform the data structure, while user-ret will be added to the user-ret sequence
|
|
in the final return. replace-in is useful for situations where you need to know the specific values
|
|
of what was transformed in the data structure.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L536">view source</a></div></div><div class="public anchor" id="var-richnav"><h3>richnav</h3><h4 class="type">macro</h4><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L34">view source</a></div></div><div class="public anchor" id="var-select"><h3>select</h3><h4 class="type">macro</h4><div class="usage"><code>(select apath structure)</code></div><div class="doc"><pre class="plaintext">Navigates to and returns a sequence of all the elements specified by the path.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L277">view source</a></div></div><div class="public anchor" id="var-select*"><h3>select*</h3><div class="usage"><code>(select* path structure)</code></div><div class="doc"><pre class="plaintext">Navigates to and returns a sequence of all the elements specified by the path.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L438">view source</a></div></div><div class="public anchor" id="var-select-any"><h3>select-any</h3><h4 class="type">macro</h4><div class="usage"><code>(select-any apath structure)</code></div><div class="doc"><pre class="plaintext">Returns any element found or [[NONE]] if nothing selected. This is the most
|
|
efficient of the various selection operations.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L301">view source</a></div></div><div class="public anchor" id="var-select-any*"><h3>select-any*</h3><div class="usage"><code>(select-any* path structure)</code></div><div class="doc"><pre class="plaintext">Returns any element found or [[NONE]] if nothing selected. This is the most
|
|
efficient of the various selection operations.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L476">view source</a></div></div><div class="public anchor" id="var-select-first"><h3>select-first</h3><h4 class="type">macro</h4><div class="usage"><code>(select-first apath structure)</code></div><div class="doc"><pre class="plaintext">Returns first element found.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L295">view source</a></div></div><div class="public anchor" id="var-select-first*"><h3>select-first*</h3><div class="usage"><code>(select-first* path structure)</code></div><div class="doc"><pre class="plaintext">Returns first element found.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L464">view source</a></div></div><div class="public anchor" id="var-select-one"><h3>select-one</h3><h4 class="type">macro</h4><div class="usage"><code>(select-one apath structure)</code></div><div class="doc"><pre class="plaintext">Like select, but returns either one element or nil. Throws exception if multiple elements found.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L289">view source</a></div></div><div class="public anchor" id="var-select-one.21"><h3>select-one!</h3><h4 class="type">macro</h4><div class="usage"><code>(select-one! apath structure)</code></div><div class="doc"><pre class="plaintext">Returns exactly one element, throws exception if zero or multiple elements found.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L283">view source</a></div></div><div class="public anchor" id="var-select-one.21*"><h3>select-one!*</h3><div class="usage"><code>(select-one!* path structure)</code></div><div class="doc"><pre class="plaintext">Returns exactly one element, throws exception if zero or multiple elements found
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L455">view source</a></div></div><div class="public anchor" id="var-select-one*"><h3>select-one*</h3><div class="usage"><code>(select-one* path structure)</code></div><div class="doc"><pre class="plaintext">Like select, but returns either one element or nil. Throws exception if multiple elements found
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L447">view source</a></div></div><div class="public anchor" id="var-selected-any.3F"><h3>selected-any?</h3><h4 class="type">macro</h4><div class="usage"><code>(selected-any? apath structure)</code></div><div class="doc"><pre class="plaintext">Returns true if any element was selected, false otherwise.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L308">view source</a></div></div><div class="public anchor" id="var-selected-any.3F*"><h3>selected-any?*</h3><div class="usage"><code>(selected-any?* path structure)</code></div><div class="doc"><pre class="plaintext">Returns true if any element was selected, false otherwise.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L485">view source</a></div></div><div class="public anchor" id="var-selected.3F"><h3>selected?</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Filters the current value based on whether a path finds anything.
|
|
e.g. (selected? :vals ALL even?) keeps the current element only if an
|
|
even number exists for the :vals key.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L815">view source</a></div></div><div class="public anchor" id="var-setval"><h3>setval</h3><h4 class="type">macro</h4><div class="usage"><code>(setval apath aval structure)</code></div><div class="doc"><pre class="plaintext">Navigates to each value specified by the path and replaces it by `aval`.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L331">view source</a></div></div><div class="public anchor" id="var-setval*"><h3>setval*</h3><div class="usage"><code>(setval* path val structure)</code></div><div class="doc"><pre class="plaintext">Navigates to each value specified by the path and replaces it by val
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L528">view source</a></div></div><div class="public anchor" id="var-srange"><h3>srange</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the subsequence bound by the indexes start (inclusive)
|
|
and end (exclusive)</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L643">view source</a></div></div><div class="public anchor" id="var-srange-dynamic"><h3>srange-dynamic</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Uses start-fn and end-fn to determine the bounds of the subsequence
|
|
to select when navigating. Each function takes in the structure as input.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L632">view source</a></div></div><div class="public anchor" id="var-STAY"><h3>STAY</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Stays navigated at the current point. Essentially a no-op navigator.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L569">view source</a></div></div><div class="public anchor" id="var-stay-then-continue"><h3>stay-then-continue</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the current element and then navigates via the provided path.
|
|
This can be used to implement pre-order traversal.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L1061">view source</a></div></div><div class="public anchor" id="var-STOP"><h3>STOP</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Stops navigation at this point. For selection returns nothing and for
|
|
transformation returns the structure unchanged</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L557">view source</a></div></div><div class="public anchor" id="var-submap"><h3>submap</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the specified submap (using select-keys).
|
|
In a transform, that submap in the original map is changed to the new
|
|
value of the submap.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L703">view source</a></div></div><div class="public anchor" id="var-subselect"><h3>subselect</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to a sequence that contains the results of (select ...),
|
|
but is a view to the original structure that can be transformed.
|
|
|
|
Requires that the input navigators will walk the structure's
|
|
children in the same order when executed on "select" and then
|
|
"transform".</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L737">view source</a></div></div><div class="public anchor" id="var-subset"><h3>subset</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to the specified subset (by taking an intersection).
|
|
In a transform, that subset in the original set is changed to the
|
|
new value of the subset.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L687">view source</a></div></div><div class="public anchor" id="var-terminal"><h3>terminal</h3><div class="usage"></div><div class="doc"><pre class="plaintext">For usage with `multi-transform`, defines an endpoint in the navigation
|
|
that will have the parameterized transform function run. The transform
|
|
function works just like it does in `transform`, with collected values
|
|
given as the first arguments</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L574">view source</a></div></div><div class="public anchor" id="var-terminal-val"><h3>terminal-val</h3><div class="usage"><code>(terminal-val v)</code></div><div class="doc"><pre class="plaintext">Like `terminal` but specifies a val to set at the location regardless of
|
|
the collected values or the value at the location.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L587">view source</a></div></div><div class="public anchor" id="var-transform"><h3>transform</h3><h4 class="type">macro</h4><div class="usage"><code>(transform apath transform-fn structure)</code></div><div class="doc"><pre class="plaintext">Navigates to each value specified by the path and replaces it by the result of running
|
|
the transform-fn on it.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L314">view source</a></div></div><div class="public anchor" id="var-transform*"><h3>transform*</h3><div class="usage"><code>(transform* path transform-fn structure)</code></div><div class="doc"><pre class="plaintext">Navigates to each value specified by the path and replaces it by the result of running
|
|
the transform-fn on it</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L506">view source</a></div></div><div class="public anchor" id="var-transformed"><h3>transformed</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to a view of the current value by transforming it with the
|
|
specified path and update-fn.
|
|
|
|
The input path may be parameterized, in which case the result of transformed
|
|
will be parameterized in the order of which the parameterized navigators
|
|
were declared.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L860">view source</a></div></div><div class="public anchor" id="var-traverse"><h3>traverse</h3><h4 class="type">macro</h4><div class="usage"><code>(traverse apath structure)</code></div><div class="doc"><pre class="plaintext">Return a reducible object that traverses over `structure` to every element
|
|
specified by the path.
|
|
This macro will do inline caching of the path.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L337">view source</a></div></div><div class="public anchor" id="var-traverse*"><h3>traverse*</h3><div class="usage"><code>(traverse* apath structure)</code></div><div class="doc"><pre class="plaintext">Return a reducible object that traverses over `structure` to every element
|
|
specified by the path</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L495">view source</a></div></div><div class="public anchor" id="var-VAL"><h3>VAL</h3><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L616">view source</a></div></div><div class="public anchor" id="var-view"><h3>view</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Navigates to result of running `afn` on the currently navigated value.
|
|
</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L782">view source</a></div></div><div class="public anchor" id="var-walker"><h3>walker</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Using clojure.walk, navigate the data structure until reaching
|
|
a value for which `afn` returns truthy.</pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L718">view source</a></div></div><div class="public anchor" id="var-with-inline-debug"><h3>with-inline-debug</h3><h4 class="type">macro</h4><div class="usage"><code>(with-inline-debug & body)</code></div><div class="doc"><pre class="plaintext"></pre></div><div class="src-link"><a href="https://github.com/nathanmarz/specter/tree/0.13.0/src/clj/com/rpl/specter.cljc#L71">view source</a></div></div></div></body></html> |