16 #include <type_traits>
18 #include <sdsl/suffix_arrays.hpp>
22 namespace seqan3::detail
38 SEQAN3_CONCEPT sdsl_index = requires (t sdsl_index)
40 typename t::size_type;
49 requires requires (t sdsl_index,
typename t::char_type
const c,
typename t::size_type
const lb,
50 typename t::size_type
const rb, sdsl::int_vector<8>
const text)
52 { sdsl_index.bwt.rank(lb, c) };
53 { sdsl_index.wavelet_tree.lex_count(lb, rb, c) };
54 { sdsl::construct_im(sdsl_index, text, 0) };
88 #ifdef SEQAN3_DEPRECATED_310
104 template <
typename t>
105 SEQAN3_CONCEPT fm_index_specialisation_concept = std::semiregular<t> && requires (t index)
107 typename t::alphabet_type;
108 typename t::size_type;
109 typename t::cursor_type;
127 template <
typename t>
160 template <
typename t>
161 SEQAN3_CONCEPT fm_index_cursor_specialisation_concept = std::semiregular<t> && requires (t cur)
163 typename t::index_type;
164 typename t::size_type;
168 requires requires (
typename t::index_type
const index) { { t(index) }; };
170 requires requires (t cur,
171 typename t::index_type::alphabet_type
const c,
181 { cur.path_label(text) };
189 { cur.lazy_locate() };
193 template <
typename t>
224 template <
typename t>
227 typename t::cursor_type;
228 typename t::fwd_cursor_type;
237 template <
typename t>
268 template <
typename t>
273 requires requires (
typename t::index_type
const index) { { t(index) }; };
275 requires requires (t cur,
276 typename t::index_type::alphabet_type
const c,
288 template <
typename t>
290 = deprecated::bi_fm_index_cursor_specialisation_concept<t>;
text_layout
The possible text layouts (single, collection) the seqan3::fm_index and seqan3::bi_fm_index can suppo...
Definition: concept.hpp:81
@ single
The text is a single range.
Definition: concept.hpp:83
@ collection
The text is a range of ranges.
Definition: concept.hpp:85
Concept for bidirectional FM index cursors.
Concept for bidirectional FM indices.
Concept for unidirectional FM index cursors.
Concept for unidirectional FM indices.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29