[][src]Module compressed_vec::filter

Structs

EqualsIF
GenericFilterSink

Sink designed to filter 8 items at a time from the decoder, building up a bitmask for each section. It is generic for different predicates and base types. Has optimizations for null sections.

MembershipPredicate

A predicate for low cardinality SET membership (one of/IN matches), consisting of a Vec of 8 values each

MultiVectorFilter

Helper to facilitate filtering multiple vectors at the same time, this one filters by the same type of filter (eg all Equals). For each group of sections, the same section filter masks are then ANDed together. It has one optimization: it short-circuits the ANDing as soon as the masking creates an all-zero mask. Thus it makes sense to put the most sparse and least likely to hit vector first.

OneOfIF
SingleValuePredicate

A predicate containing 8 values (probably SIMD) of each type for single comparisons

VectorFilter

Allows for filtering over each section of a vector. Yields an Iterator of u32x8 mask for each section in the vector.

Constants

EMPTY_FILTER

Traits

InnerFilter
Predicate

A Predicate is the value(s) for a filter to filter against

SectFilterSink

A Sink designed to filter 256-section vectors. The workflow:

UnaryFilter

A Unary filter takes one mask input, does some kind of filtering and creates a new mask. Filters that process and filter vectors are a subset of the above.

Functions

count_hits

Counts the output of VectorFilter iterator (or multiple VectorFilter results ANDed together) for all the 1's in the output and returns the total SIMD count_ones() is used for fast counting

match_positions

Creates a Vec of the element positions where matches occur

Type Definitions

EmptyFilter
EqualsSink
OneOfSink