std.lib.protocol
class:implements?
added in 3.0
(class:implements? {:keys [impls], :as protocol} type)(class:implements? protocol type method)checks whether a type has implemented a protocol
(class:implements? state/IStateGet clojure.lang.Atom) => true
protocol:impls
added in 3.0
(protocol:impls protocol)returns types that implement the protocol
(protocol:impls state/IStateSet) => (any (contains clojure.lang.Agent clojure.lang.Ref clojure.lang.IAtom clojure.lang.Volatile clojure.lang.IPending clojure.lang.Var :in-any-order :gaps-ok) #{})
(protocol:impls state/IStateGet) => (any (contains clojure.lang.IDeref clojure.lang.IPending :in-any-order :gaps-ok) #{})
protocol:interface
added in 3.0
(protocol:interface protocol)returns the java interface for a given protocol
(protocol:interface state/IStateGet) => std.protocol.state.IStateGet
protocol:methods
added in 3.0
(protocol:methods protocol)returns the methods provided by the protocol
(protocol:methods state/IStateSet) => ’-clone-state -empty-state -set-state -update-state
protocol:remove
added in 3.0
(protocol:remove protocol atype)protocol:signatures
added in 3.0
(protocol:signatures protocol)returns the method signatures provided by the protocol
(protocol:signatures state/IStateSet) => ’{-update-state {:arglists (obj f args opts) :doc nil} -set-state {:arglists (obj v opts) :doc nil} -empty-state {:arglists (obj opts) :doc nil} -clone-state {:arglists (obj opts) :doc nil}}
protocol?
added in 3.0
(protocol? obj)checks whether an object is a protocol
(protocol? state/IStateGet) => true