The SeqAn Bidirectional FM Index. More...
#include <seqan3/search/fm_index/bi_fm_index.hpp>
Public Types | |
using | index_traits = index_traits_t |
The index traits object. | |
Text types | |
using | text_type = text_t |
The type of the forward indexed text. | |
using | rev_text_type = decltype(view::reverse(*text)) |
The type of the forward indexed text. | |
using | char_type = innermost_value_type_t< text_t > |
The type of the underlying character of text_type. | |
using | size_type = typename sdsl_index_type::size_type |
Type for representing positions in the indexed text. | |
Iterator types | |
using | iterator_type = bi_fm_index_iterator< bi_fm_index< text_t, index_traits_t > > |
The type of the bidirectional iterator. | |
using | fwd_iterator_type = fm_index_iterator< fm_index_type > |
The type of the unidirectional iterator on the original text. | |
using | rev_iterator_type = fm_index_iterator< rev_fm_index_type > |
The type of the unidirectional iterator on the reversed text. | |
Public Member Functions | |
iterator_type | begin () const noexcept |
Returns a seqan3::bi_fm_index_iterator on the index that can be used for searching. More... | |
void | construct (text_t const &text) |
Constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty. More... | |
void | construct (text_t &&)=delete |
void | construct (text_t const &&)=delete |
bool | empty () const noexcept |
Checks whether the index is empty. More... | |
fwd_iterator_type | fwd_begin () const noexcept |
Returns a unidirectional seqan3::fm_index_iterator on the original text of the bidirectional index that can be used for searching. More... | |
bool | load (filesystem::path const &path) |
Loads the index from disk. Temporary function until cereal is supported. More... | |
rev_iterator_type | rev_begin () const noexcept |
Returns a unidirectional seqan3::fm_index_iterator on the reversed text of the bidirectional index that can be used for searching. Note that because of the text being reversed, extend_right() resp. cycle_back() correspond to extend_left() resp. cycle_front() on the bidirectional index iterator. More... | |
size_type | size () const noexcept |
Returns the length of the indexed text including sentinel characters. More... | |
bool | store (filesystem::path const &path) const |
Stores the index to disk. Temporary function until cereal is supported. More... | |
Constructors, destructor and assignment | |
bi_fm_index ()=default | |
bi_fm_index (bi_fm_index const &)=default | |
bi_fm_index & | operator= (bi_fm_index const &)=default |
bi_fm_index (bi_fm_index &&)=default | |
bi_fm_index & | operator= (bi_fm_index &&)=default |
~bi_fm_index ()=default | |
bi_fm_index (text_t const &text) | |
Constructor that immediately constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty. More... | |
bi_fm_index (text_t &&)=delete | |
bi_fm_index (text_t const &&)=delete | |
Friends | |
template<typename bi_fm_index_t > | |
class | bi_fm_index_iterator |
template<typename fm_index_t > | |
class | fm_index_iterator |
The SeqAn Bidirectional FM Index.
text_t | The type of the text to be indexed; must model std::ranges::RandomAccessRange. |
bi_fm_index_traits | The traits determining the implementation of the underlying SDSL indices; must model seqan3::bi_fm_index_traits_concept. |
|
inline |
Constructor that immediately constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty.
text_t | The type of range to construct from; must model std::ranges::RandomAccessRange. |
[in] | text | The text to construct from. |
|
delete |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
delete |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlinenoexcept |
Returns a seqan3::bi_fm_index_iterator on the index that can be used for searching.
Constant.
No-throw guarantee.
|
inline |
Constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty.
text_t | The type of range to construct from; must model std::ranges::RandomAccessRange. |
[in] | text | The text to construct from. |
No guarantee.
|
delete |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
delete |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlinenoexcept |
Checks whether the index is empty.
true
if the index is empty, false
otherwise.Constant.
No-throw guarantee.
|
inlinenoexcept |
Returns a unidirectional seqan3::fm_index_iterator on the original text of the bidirectional index that can be used for searching.
Constant.
No-throw guarantee.
|
inline |
Loads the index from disk. Temporary function until cereal is supported.
true
if the index was successfully loaded from disk.Linear.
Strong exception guarantee.
|
inlinenoexcept |
Returns a unidirectional seqan3::fm_index_iterator on the reversed text of the bidirectional index that can be used for searching. Note that because of the text being reversed, extend_right() resp. cycle_back() correspond to extend_left() resp. cycle_front() on the bidirectional index iterator.
Constant.
No-throw guarantee.
|
inlinenoexcept |
Returns the length of the indexed text including sentinel characters.
Constant.
No-throw guarantee.
|
inline |
Stores the index to disk. Temporary function until cereal is supported.
true
if the index was successfully stored to disk.Linear.
Strong exception guarantee.