Before any resolution happens, claro will analyze the value it was given to collect the initial set of resolvables. This means that the whole tree will be traversed recursively, resulting in the following points of note regarding very large trees:
Real-world data should not exhibit excessive nesting, especially not before resolution, so while users should keep these points in mind, they most probably won't be affected by them.
claro will only work with values implementing the Resolvable
interface -
which is automatically done when claro.data/Resolvable
is used with
defrecord
, deftype
or reify
. This means that values that "earn" their
resolvability via extend-type
or extend-protocol
will not be picked up.
The reason for this is a huge performance gap between satisfies?
(which has to
create a list of all superclasses for a given value, then intersect it with all
classes implementing a protocol) and instance?
(which boils down to a simple
reflection call).
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close