1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Cyclic reverse-complementary substring matching, plus the DAFSA
//! storage stack used to ship large enumerated rat sets.
//!
//! Two independent pieces share this module:
//!
//! 1. **String-matching primitives.** [`BitParallelMatcher`] is the
//! bulk-matching engine: a streaming Shift-And-style matcher tuned
//! for the small-alphabet cyclic-RC use case (see its module
//! docs). The smaller primitives serve different niches:
//! * [`match_length`] / [`forward_match_length`] (in `extend.rs`)
//! extend a single match outward from a known anchor pair.
//! `match_length` is the generic two-slice matcher used by
//! `Rat::get_match`; `forward_match_length` is a zero-alloc
//! anti-parallel cyclic specialization for the patch /
//! neighborhood paths.
//! * `period::repetition_factor` and `cyclic::cyclic_contains` are
//! standalone KMP-based utilities -- unrelated to
//! `BitParallelMatcher` but exposed here because they belong to
//! the same family of primitives.
//!
//! 2. **DAFSA storage.** See [`dafsa`] for the three-layer stack:
//! [`Dafsa`] (the automaton), [`RatDafsa`] (length-prefixed rat
//! wrapper, the single-file format), and [`LazyRatDafsa`] /
//! [`LazyRatDafsaAsync`] (block-served readers for incremental
//! loading from disk / HTTP).
pub use BitParallelMatcher;
pub use cyclic_contains;
pub use ;
pub use ;
pub use repetition_factor;
// A maximal reverse-complementary match between two cyclic angle sequences
// is the crate-wide `TileMatch` type; re-exported here for ergonomic
// `stringmatch::TileMatch` access at the BitParallelMatcher API boundary.
pub use crateTileMatch;