15#include <seqan3/contrib/sdsl-lite.hpp>
18namespace seqan3::detail
31concept sdsl_index =
requires (t sdsl_index) {
32 typename t::size_type;
34 { sdsl_index.size() } -> std::same_as<typename t::size_type>;
36 { sdsl_index.comp2char[0] } -> std::same_as<uint8_t>;
37 { sdsl_index.char2comp[0] } -> std::same_as<uint8_t>;
41 requires requires (t sdsl_index,
42 typename t::char_type
const c,
43 typename t::size_type
const lb,
44 typename t::size_type
const rb,
45 seqan3::contrib::sdsl::int_vector<8>
const text) {
46 { sdsl_index.bwt.rank(lb, c) };
47 { sdsl_index.wavelet_tree.lex_count(lb, rb, c) };
48 { seqan3::contrib::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 search/fm_index/concept.hpp:69
@ single
The text is a single range.
Definition search/fm_index/concept.hpp:71
@ collection
The text is a range of ranges.
Definition search/fm_index/concept.hpp:73
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26