15 #include <type_traits>
17 #include <sdsl/suffix_arrays.hpp>
23 namespace seqan3::detail
39 SEQAN3_CONCEPT sdsl_index = requires (t sdsl_index)
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)
53 { sdsl_index.bwt.rank(lb, c) };
54 { sdsl_index.wavelet_tree.lex_count(lb, rb, c) };
55 { sdsl::construct_im(sdsl_index, text, 0) };
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 unidirectional FM index cursors.
Concept for unidirectional FM indices.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Additional non-standard concepts for ranges.
Adaptations of concepts from the standard library.