ham-fisted.protocols

BitSet

protocol

Protocol for efficiently dealing with bitsets

members

bitset?

(bitset? item)

contains-range?

(contains-range? item sidx eidx)

intersects-range?

(intersects-range? item sidx eidx)

max-set-value

(max-set-value item)

min-set-value

(min-set-value item)

BulkSetOps

protocol

members

reduce-intersection

(reduce-intersection l data)

reduce-union

(reduce-union l data)

Finalize

protocol

Generic protocol for things that finalize results of reductions. Defaults to deref of instance of IDeref or identity.

members

finalize

(finalize this val)

PAdd

protocol

Define a function to mutably add items to a collection. This function must return the collection -- it must be useable in a reduction.

members

add-fn

(add-fn l)

ParallelReducer

protocol

Parallel reducers are simple a single object that you can pass into preduce as opposed to 3 separate functions.

members

->merge-fn

(->merge-fn item)

Returns the merge function for a parallel reduction. This function takes two accumulators and returns a or modified accumulator.

ParallelReduction

protocol

Protocol to define a parallel reduction in a collection-specific pathway. Specializations are in impl as that is where the parallelization routines are found.

members

preduce

(preduce coll init-val-fn rfn merge-fn options)

Container-specific parallelized reduction. Reductions must respect the pool passed in via the options.

Reducer

protocol

Reducer is the basic reduction abstraction as a single object.

members

->init-val-fn

(->init-val-fn item)

Returns the initial values for a parallel reduction. This function takes no arguments and returns the initial accumulator.

->rfn

(->rfn item)

Returns the reduction function for a parallel reduction. This function takes two arguments, the accumulator and a value from the collection and returns a new or modified accumulator.

Reduction

protocol

Faster check than satisfies? to see if something is reducible

members

reducible?

(reducible? coll)

SerializeObjBytes

protocol

members

serialize->bytes

(serialize->bytes o)

SetOps

protocol

Simple protocol for set operations to make them uniformly extensible to new objects.

members

cardinality

(cardinality item)

Some sets don't work with clojure's count function.

contains-fn

(contains-fn item)

Return an efficient function for deciding if this set contains a single item.

difference

(difference l r)

intersection

(intersection l r)

set?

(set? l)

union

(union l r)

xor

(xor l r)

ToCollection

protocol

members

->collection

(->collection item)

convertible-to-collection?

(convertible-to-collection? item)

ToIterable

protocol

members

->iterable

(->iterable item)

convertible-to-iterable?

(convertible-to-iterable? item)

WrapArray

protocol

members

wrap-array

(wrap-array ary)

wrap-array-growable

(wrap-array-growable ary ptr)