<html><head><metacharset="UTF-8"/><linkhref="css/default.css"rel="stylesheet"type="text/css"/><scriptsrc="js/jquery.min.js"type="text/javascript"></script><scriptsrc="js/page_effects.js"type="text/javascript"></script><title>com.rpl.specter.protocols documentation</title></head><body><divid="header"><h2>Generated by <ahref="https://github.com/weavejester/codox">Codox</a></h2><h1><ahref="index.html"><spanclass="project-title"><spanclass="project-name">Specter</span><spanclass="project-version">0.12.0</span></span></a></h1></div><divclass="sidebar primary"><h3class="no-link"><spanclass="inner">Project</span></h3><ulclass="index-link"><liclass="depth-1 "><ahref="index.html"><divclass="inner">Index</div></a></li></ul><h3class="no-link"><spanclass="inner">Namespaces</span></h3><ul><liclass="depth-1"><divclass="no-link"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>com</span></div></div></li><liclass="depth-2"><divclass="no-link"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>rpl</span></div></div></li><liclass="depth-3"><ahref="com.rpl.specter.html"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>specter</span></div></a></li><liclass="depth-4 branch"><ahref="com.rpl.specter.macros.html"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>macros</span></div></a></li><liclass="depth-4 branch current"><ahref="com.rpl.specter.protocols.html"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>protocols</span></div></a></li><liclass="depth-4 branch"><ahref="com.rpl.specter.transients.html"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>transients</span></div></a></li><liclass="depth-4"><ahref="com.rpl.specter.zipper.html"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>zipper</span></div></a></li></ul></div><divclass="sidebar secondary"><h3><ahref="#top"><spanclass="inner">Public Vars</span></a></h3><ul><liclass="depth-1"><ahref="com.rpl.specter.protocols.html#var-Collector"><divclass="inner"><span>Collector</span></div></a></li><liclass="depth-2"><ahref="com.rpl.specter.protocols.html#var-collect-val"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>collect-val</span></div></a></li><liclass="depth-1"><ahref="com.rpl.specter.protocols.html#var-Navigator"><divclass="inner"><span>Navigator</span></div></a></li><liclass="depth-2 branch"><ahref="com.rpl.specter.protocols.html#var-select*"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>select*</span></div></a></li><liclass="depth-2"><ahref="com.rpl.specter.protocols.html#var-transform*"><divclass="inner"><spanclass="tree"><spanclass="top"></span><spanclass="bottom"></span></span><span>transform*</span></div></a></li></ul></div><divclass="namespace-docs"id="content"><h1class="anchor"id="top">com.rpl.specter.protocols</h1><divclass="doc"><preclass="plaintext"></pre></div><divclass="public anchor"id="var-Collector"><h3>Collector</h3><h4class="type">protocol</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="members"><h4>members</h4><divclass="inner"><divclass="public anchor"id="var-collect-val"><h3>collect-val</h3><divclass="usage"><code>(collect-val this structure)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div></div></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/0.12.0/src/clj/com/rpl/specter/protocols.cljx#L19">view source</a></div></div><divclass="public anchor"id="var-Navigator"><h3>Navigator</h3><h4class="type">protocol</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="members"><
subvalue of `structure`. The result of `select*` is specified
as follows:
1. `NONE` if `next-fn` never called
2. `NONE` if all calls to `next-fn` return `NONE`
3. Otherwise, any non-`NONE` return value from calling `next-fn`
</pre></div></div><divclass="public anchor"id="var-transform*"><h3>transform*</h3><divclass="usage"><code>(transform* this structure next-fn)</code></div><divclass="doc"><preclass="plaintext">An implementation of `transform*` must use `next-fn` to transform
any subvalues of `structure` and then merge those transformed values
back into `structure`. Everything else in `structure` must be unchanged.</pre></div></div></div></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/0.12.0/src/clj/com/rpl/specter/protocols.cljx#L3">view source</a></div></div></div></body></html>