Module searcher

Source

StructsΒ§

Pre πŸ”’
A combination of prefilter effectiveness state and the prefilter itself.
Prefilter πŸ”’
The implementation of a prefilter.
PrefilterState πŸ”’
PrefilterState tracks state associated with the effectiveness of a prefilter. It is used to track how many bytes, on average, are skipped by the prefilter. If this average dips below a certain threshold over time, then the state renders the prefilter inert and stops using it.
Searcher πŸ”’
A β€œmeta” substring searcher.
SearcherRev πŸ”’
A reverse substring searcher.
TwoWayWithPrefilter πŸ”’
A two-way substring searcher with a prefilter.

EnumsΒ§

PrefilterConfig
Prefilter controls whether heuristics are used to accelerate searching.
SearcherRevKind πŸ”’
The kind of the reverse searcher.

FunctionsΒ§

do_packed_search πŸ”’
Returns true if the needle has the right characteristics for a vector algorithm to handle the entirety of substring search.
prefilter_kind_avx2 πŸ”’ ⚠
Reads from the avx2 field of PrefilterKind to execute the x86_64 AVX2 prefilter.
prefilter_kind_fallback πŸ”’ ⚠
Reads from the fallback field of PrefilterKind to execute the fallback prefilter. Works on all platforms.
prefilter_kind_sse2 πŸ”’ ⚠
Reads from the sse2 field of PrefilterKind to execute the x86_64 SSE2 prefilter.
searcher_kind_avx2 πŸ”’ ⚠
Reads from the avx2 field of SearcherKind to execute the x86_64 AVX2 vectorized substring search implementation.
searcher_kind_empty πŸ”’ ⚠
Reads from the empty field of SearcherKind to handle the case of searching for the empty needle. Works on all platforms.
searcher_kind_one_byte πŸ”’ ⚠
Reads from the one_byte field of SearcherKind to handle the case of searching for a single byte needle. Works on all platforms.
searcher_kind_sse2 πŸ”’ ⚠
Reads from the sse2 field of SearcherKind to execute the x86_64 SSE2 vectorized substring search implementation.
searcher_kind_two_way πŸ”’ ⚠
Reads from the two_way field of SearcherKind to handle the case of searching for an arbitrary needle without prefilter acceleration. Works on all platforms.
searcher_kind_two_way_with_prefilter πŸ”’ ⚠
Reads from the two_way_with_prefilter field of SearcherKind to handle the case of searching for an arbitrary needle with prefilter acceleration. Works on all platforms.

Type AliasesΒ§

PrefilterKindFn πŸ”’
The type of a prefilter function.
SearcherKindFn πŸ”’
The type of a substring search function.

UnionsΒ§

PrefilterKind πŸ”’
A union indicating one of several possible prefilters that are in active use.
SearcherKind πŸ”’
A union indicating one of several possible substring search implementations that are in active use.