15 #include <type_traits>
17 #include <sdsl/suffix_arrays.hpp>
41 typename t::size_type;
50 requires requires (t
sdsl_index,
typename t::char_type
const c,
typename t::size_type
const lb,
51 typename t::size_type
const rb, sdsl::int_vector<8>
const text)
54 {
sdsl_index.wavelet_tree.lex_count(lb, rb, c) };
89 #ifdef SEQAN3_DEPRECATED_310
105 template <
typename t>
106 SEQAN3_CONCEPT fm_index_specialisation_concept = std::semiregular<t> && requires (t index)
108 typename t::alphabet_type;
109 typename t::size_type;
110 typename t::cursor_type;
128 template <
typename t>
161 template <
typename t>
162 SEQAN3_CONCEPT fm_index_cursor_specialisation_concept = std::semiregular<t> && requires (t cur)
164 typename t::index_type;
165 typename t::size_type;
169 requires requires (
typename t::index_type
const index) { { t(index) }; };
171 requires requires (t cur,
172 typename t::index_type::alphabet_type
const c,
182 { cur.path_label(text) };
190 { cur.lazy_locate() };
194 template <
typename t>
225 template <
typename t>
228 typename t::cursor_type;
229 typename t::fwd_cursor_type;
238 template <
typename t>
269 template <
typename t>
274 requires requires (
typename t::index_type
const index) { { t(index) }; };
276 requires requires (t cur,
277 typename t::index_type::alphabet_type
const c,
289 template <
typename t>
291 = deprecated::bi_fm_index_cursor_specialisation_concept<t>;
Provides various transformation traits used by the range module.
text_layout
The possible text layouts (single, collection) the seqan3::fm_index and seqan3::bi_fm_index can suppo...
Definition: concept.hpp:82
@ single
The text is a single range.
Definition: concept.hpp:84
@ collection
The text is a range of ranges.
Definition: concept.hpp:86
Concept for bidirectional FM index cursors.
Concept for bidirectional FM indices.
Concept for SDSL FM indices (which are called compressed suffix arrays in the SDSL).
Concept for unidirectional FM index cursors.
Concept for unidirectional FM indices.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Additional non-standard concepts for ranges.
Adaptations of concepts from the standard library.