18#include <sdsl/suffix_arrays.hpp>
22namespace seqan3::detail
35concept sdsl_index =
requires (t sdsl_index) {
36 typename t::size_type;
40 } -> std::same_as<typename t::size_type>;
45 sdsl_index.comp2char[0]
46 } -> std::same_as<uint8_t>;
48 sdsl_index.char2comp[0]
49 } -> std::same_as<uint8_t>;
57 requires requires (t sdsl_index,
58 typename t::char_type
const c,
59 typename t::size_type
const lb,
60 typename t::size_type
const rb,
61 sdsl::int_vector<8>
const text) {
63 sdsl_index.bwt.rank(lb, c)
66 sdsl_index.wavelet_tree.lex_count(lb, rb, c)
69 sdsl::construct_im(sdsl_index, text, 0)
text_layout
The possible text layouts (single, collection) the seqan3::fm_index and seqan3::bi_fm_index can suppo...
Definition: concept.hpp:91
@ single
The text is a single range.
Definition: concept.hpp:93
@ collection
The text is a range of ranges.
Definition: concept.hpp:95
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29