A port of clojure/core.cache to Clojurescript
A port of clojure/core.cache to Clojurescript
(basic-cache-factory base)
Returns a pluggable basic cache initialied to base
Returns a pluggable basic cache initialied to `base`
This is the protocol describing the basic cache capability.
This is the protocol describing the basic cache capability.
(evict cache e)
Removes an entry from the cache
Removes an entry from the cache
(has? cache e)
Checks if the cache contains a value associated with e
Checks if the cache contains a value associated with `e`
(hit cache e)
Is meant to be called if the cache is determined to contain a value
associated with e
Is meant to be called if the cache is determined to contain a value associated with `e`
(lookup cache e)
(lookup cache e not-found)
Retrieve the value associated with e
if it exists, else nil
in
the 2-arg case. Retrieve the value associated with e
if it exists,
else not-found
in the 3-arg case.
Retrieve the value associated with `e` if it exists, else `nil` in the 2-arg case. Retrieve the value associated with `e` if it exists, else `not-found` in the 3-arg case.
(miss cache e ret)
Is meant to be called if the cache is determined to not contain a
value associated with e
Is meant to be called if the cache is determined to **not** contain a value associated with `e`
(seed cache base)
Is used to signal that the cache should be created with a seed. The contract is that said cache should return an instance of its own type.
Is used to signal that the cache should be created with a seed. The contract is that said cache should return an instance of its own type.
(defcache type-name fields & specifics)
(lru-cache-factory base & {threshold :threshold :or {threshold 32}})
Returns an LRU cache with the cache and usage-table initialied to base
--
each entry is initialized with the same usage value.
This function takes an optional :threshold
argument that defines the maximum number
of elements in the cache before the LRU semantics apply (default is 32).
Returns an LRU cache with the cache and usage-table initialied to `base` -- each entry is initialized with the same usage value. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the LRU semantics apply (default is 32).
(through cache item)
(through value-fn cache item)
(through wrap-fn value-fn cache item)
The basic hit/miss logic for the cache system. Expects a wrap function and value function. The wrap function takes the value function and the item in question and is expected to run the value function with the item whenever a cache miss occurs. The intent is to hide any cache-specific cells from leaking into the cache logic itelf.
The basic hit/miss logic for the cache system. Expects a wrap function and value function. The wrap function takes the value function and the item in question and is expected to run the value function with the item whenever a cache miss occurs. The intent is to hide any cache-specific cells from leaking into the cache logic itelf.
(through-cache cache item)
(through-cache cache item value-fn)
(through-cache cache item wrap-fn value-fn)
The basic hit/miss logic for the cache system. Like through but always has the cache argument in the first position for easier use with swap! etc.
The basic hit/miss logic for the cache system. Like through but always has the cache argument in the first position for easier use with swap! etc.
(ttl-cache-factory base & {ttl :ttl :or {ttl 2000}})
Returns a TTL cache with the cache and expiration-table initialied to base
--
each with the same time-to-live.
This function also allows an optional :ttl
argument that defines the default
time in milliseconds that entries are allowed to reside in the cache.
Returns a TTL cache with the cache and expiration-table initialied to `base` -- each with the same time-to-live. This function also allows an optional `:ttl` argument that defines the default time in milliseconds that entries are allowed to reside in the cache.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close