25 template <
class P,
class Native,
class Output>
struct index_builder;
26 namespace profile_detail {
27 template <
class P>
struct index_output;
42 static constexpr std::uint64_t
group_size = P::group_size;
48 std::vector<std::uint64_t> cuts;
49 if (groups > cuts.max_size()) error_detail::raise<std::length_error>(
"native index is too large");
50 cuts.resize(
static_cast<std::size_t
>(groups), 0);
62 std::span<std::uint64_t const>
cut_lcps() const && = delete;
77 std::vector<std::byte> false_borrows, std::vector<std::uint64_t>
cut_lcps,
78 std::uint64_t virtual_count)
83 namespace profile_detail {
93 std::uint64_t
size() const noexcept {
return writer_.size(); }
95 bool failed() const noexcept {
return false; }
Definition active_engine.h:18
Declares Everett's profile support.
Declares Everett's rank groups support.
Definition index_builder.h:47
std::uint64_t size() const noexcept
Definition profile.h:1240
static profile_array build(std::span< profile_record const > records, std::span< std::uint64_t const > prefix_ceilings={}, std::uint64_t restart_factor=0)
Definition profile.h:1173
Definition profile.h:1280
Definition profile_index.h:86
index_output(index_output &&)=default
profile_borrowed_writer< P > writer_
Definition profile_index.h:103
P policy_type
Definition profile_index.h:87
index_output(index_output const &)=delete
index_output & operator=(index_output const &)=delete
void append_known(bit_view key, std::uint64_t common_bits)
Definition profile_index.h:96
bool failed() const noexcept
Definition profile_index.h:95
profile_index< P > finish(index_metadata< P > metadata)
Definition profile_index.h:97
std::uint64_t size() const noexcept
Definition profile_index.h:93
index_output & operator=(index_output &&)=default
bool finished() const noexcept
Definition profile_index.h:94
Definition profile_index.h:39
std::uint64_t virtual_count_
Definition profile_index.h:74
std::uint64_t virtual_size() const noexcept
Definition profile_index.h:63
std::span< std::uint64_t const > cut_lcps() const &&=delete
std::span< std::byte const > false_borrow_bits() const &&=delete
borrowed_array const & borrowed() const &&=delete
rank_groups< group_size > const & interleave() const &noexcept
Definition profile_index.h:57
borrowed_array borrowed_
Definition profile_index.h:70
std::vector< std::byte > false_borrows_
Definition profile_index.h:72
profile_index(borrowed_array borrowed, rank_groups< group_size > interleave, std::vector< std::byte > false_borrows, std::vector< std::uint64_t > cut_lcps, std::uint64_t virtual_count)
Definition profile_index.h:76
P policy_type
Definition profile_index.h:40
static profile_index native_only(std::uint64_t count)
Definition profile_index.h:46
std::span< std::uint64_t const > cut_lcps() const &noexcept
Definition profile_index.h:61
rank_groups< group_size > interleave_
Definition profile_index.h:71
borrowed_array const & borrowed() const &noexcept
Definition profile_index.h:55
std::uint64_t native_size() const noexcept
Definition profile_index.h:64
std::vector< std::uint64_t > cut_lcps_
Definition profile_index.h:73
static constexpr std::uint64_t group_size
Definition profile_index.h:42
std::span< std::byte const > false_borrow_bits() const &noexcept
Definition profile_index.h:59
rank_groups< group_size > const & interleave() const &&=delete
Definition rank_groups.h:241
static rank_groups build(std::span< std::uint64_t const > source, std::uint64_t count)
Definition rank_groups.h:247