64 using sdsl_index_type = sdsl_index_type_;
67 using rev_sdsl_index_type = sdsl::csa_wt<sdsl_wt_index_type::wavelet_tree_type,
70 sdsl::sa_order_sa_sampling<>,
72 sdsl_wt_index_type::alphabet_type>;
77 using sdsl_char_type =
typename sdsl_index_type::alphabet_type::char_type;
80 using sdsl_sigma_type =
typename sdsl_index_type::alphabet_type::sigma_type;
86 using rev_fm_index_type = detail::reverse_fm_index<alphabet_t, text_layout_mode_, rev_sdsl_index_type>;
93 rev_fm_index_type rev_fm;
114 template <std::ranges::range text_t>
117 detail::fm_index_validator::validate<alphabet_t, text_layout_mode_>(
text);
120 rev_fm = rev_fm_index_type{
text};
146 template <
typename bi_fm_index_t>
167 template <std::ranges::range text_t>
170 construct(std::forward<text_t>(
text));
187 return fwd_fm.
size();
235 return !(*
this ==
rhs);
281 template <cereal_archive archive_t>