Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
#include <rrbtree.hpp>
Public Types | |
using | node_t = node< T, MemoryPolicy, B, BL > |
using | edit_t = typename node_t::edit_t |
using | owner_t = typename MemoryPolicy::transience_t::owner |
Public Member Functions | |
rrbtree (size_t sz, shift_t sh, node_t *r, node_t *t) | |
rrbtree (const rrbtree &other) | |
rrbtree (rrbtree &&other) | |
rrbtree & | operator= (const rrbtree &other) |
rrbtree & | operator= (rrbtree &&other) |
~rrbtree () | |
void | inc () const |
void | dec () const |
auto | tail_size () const |
auto | tail_offset () const |
template<typename Visitor , typename... Args> | |
void | traverse (Visitor v, Args &&... args) const |
template<typename Visitor , typename... Args> | |
void | traverse (Visitor v, size_t first, size_t last, Args &&... args) const |
template<typename Visitor , typename... Args> | |
bool | traverse_p (Visitor v, Args &&... args) const |
template<typename Visitor , typename... Args> | |
bool | traverse_p (Visitor v, size_t first, size_t last, Args &&... args) const |
template<typename Visitor > | |
decltype(auto) | descend (Visitor v, size_t idx) const |
template<typename Fn > | |
void | for_each_chunk (Fn &&fn) const |
template<typename Fn > | |
void | for_each_chunk (size_t first, size_t last, Fn &&fn) const |
template<typename Fn > | |
bool | for_each_chunk_p (Fn &&fn) const |
template<typename Fn > | |
bool | for_each_chunk_p (size_t first, size_t last, Fn &&fn) const |
bool | equals (const rrbtree &other) const |
std::tuple< shift_t, node_t * > | push_tail (node_t *root, shift_t shift, size_t size, node_t *tail, count_t tail_size) const |
void | push_tail_mut (edit_t e, size_t tail_off, node_t *tail, count_t tail_size) |
void | ensure_mutable_tail (edit_t e, count_t n) |
void | push_back_mut (edit_t e, T value) |
rrbtree | push_back (T value) const |
std::tuple< const T *, size_t, size_t > | region_for (size_t idx) const |
T & | get_mut (edit_t e, size_t idx) |
const T & | get (size_t index) const |
const T & | get_check (size_t index) const |
const T & | front () const |
const T & | back () const |
template<typename FnT > | |
void | update_mut (edit_t e, size_t idx, FnT &&fn) |
template<typename FnT > | |
rrbtree | update (size_t idx, FnT &&fn) const |
void | assoc_mut (edit_t e, size_t idx, T value) |
rrbtree | assoc (size_t idx, T value) const |
void | take_mut (edit_t e, size_t new_size) |
rrbtree | take (size_t new_size) const |
void | drop_mut (edit_t e, size_t elems) |
rrbtree | drop (size_t elems) const |
rrbtree | concat (const rrbtree &r) const |
void | hard_reset () |
bool | check_tree () const |
bool | check_tail () const |
bool | check_root () const |
Static Public Member Functions | |
static const rrbtree & | empty () |
template<typename U > | |
static auto | from_initializer_list (std::initializer_list< U > values) |
template<typename Iter , typename Sent , std::enable_if_t< compatible_sentinel_v< Iter, Sent >, bool > = true> | |
static auto | from_range (Iter first, Sent last) |
static auto | from_fill (size_t n, T v) |
Public Attributes | |
size_t | size |
shift_t | shift |
node_t * | root |
node_t * | tail |
Static Public Attributes | |
static constexpr bool | supports_transient_concat |
Friends | |
void | swap (rrbtree &x, rrbtree &y) |
void | concat_mut_l (rrbtree &l, edit_t el, const rrbtree &r) |
void | concat_mut_r (const rrbtree &l, rrbtree &r, edit_t er) |
void | concat_mut_lr_l (rrbtree &l, edit_t el, rrbtree &r, edit_t er) |
void | concat_mut_lr_r (rrbtree &l, edit_t el, rrbtree &r, edit_t er) |
Detailed Description
template<typename T, typename MemoryPolicy, bits_t B, bits_t BL>
struct immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >
Definition at line 36 of file rrbtree.hpp.
Member Typedef Documentation
◆ edit_t
using immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::edit_t = typename node_t::edit_t |
Definition at line 39 of file rrbtree.hpp.
◆ node_t
using immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::node_t = node<T, MemoryPolicy, B, BL> |
Definition at line 38 of file rrbtree.hpp.
◆ owner_t
using immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::owner_t = typename MemoryPolicy::transience_t::owner |
Definition at line 40 of file rrbtree.hpp.
Constructor & Destructor Documentation
◆ rrbtree() [1/3]
|
inline |
Definition at line 89 of file rrbtree.hpp.
◆ rrbtree() [2/3]
|
inline |
Definition at line 95 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail.
◆ rrbtree() [3/3]
|
inline |
Definition at line 101 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty().
◆ ~rrbtree()
|
inline |
Definition at line 129 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::dec().
Member Function Documentation
◆ assoc()
|
inline |
Definition at line 524 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::set(), and immer::flex_vector< T, MemoryPolicy, B, BL >::set_move().
◆ assoc_mut()
|
inline |
Definition at line 517 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update_mut().
Referenced by immer::flex_vector_transient< T, MemoryPolicy, B, BL >::set(), and immer::flex_vector< T, MemoryPolicy, B, BL >::set_move().
◆ back()
|
inline |
Definition at line 488 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size.
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::back().
◆ check_root()
|
inline |
Definition at line 1195 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::check(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inner, immer::detail::rbts::node< T, MemoryPolicy, B, BL >::kind(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree().
◆ check_tail()
|
inline |
Definition at line 1186 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::check(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree().
◆ check_tree()
|
inline |
Definition at line 1173 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_root(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
◆ concat()
|
inline |
Definition at line 659 of file rrbtree.hpp.
References immer::detail::rbts::concat_trees(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_leaf(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::concat_move().
◆ dec()
|
inline |
Definition at line 140 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::~rrbtree().
◆ descend()
|
inline |
Definition at line 227 of file rrbtree.hpp.
References immer::detail::rbts::make_leaf_descent_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_descent().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_check().
◆ drop()
|
inline |
Definition at line 635 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::drop(), and immer::flex_vector< T, MemoryPolicy, B, BL >::drop_move().
◆ drop_mut()
|
inline |
Definition at line 600 of file rrbtree.hpp.
References immer::detail::rbts::dec_inner(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::flex_vector_transient< T, MemoryPolicy, B, BL >::drop(), and immer::flex_vector< T, MemoryPolicy, B, BL >::drop_move().
◆ empty()
|
inlinestatic |
Definition at line 47 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_inner_n(), and immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_leaf_n().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_fill(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_initializer_list(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_range(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::rrbtree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut().
◆ ensure_mutable_tail()
|
inline |
Definition at line 388 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::can_mutate(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf_e(), immer::detail::rbts::dec_leaf(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut().
◆ equals()
|
inline |
Definition at line 259 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::leaf(), immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::operator==().
◆ for_each_chunk() [1/2]
|
inline |
Definition at line 236 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse().
◆ for_each_chunk() [2/2]
|
inline |
Definition at line 242 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse().
◆ for_each_chunk_p() [1/2]
|
inline |
Definition at line 248 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p().
◆ for_each_chunk_p() [2/2]
|
inline |
Definition at line 254 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p().
◆ from_fill()
|
inlinestatic |
Definition at line 80 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut().
◆ from_initializer_list()
|
inlinestatic |
Definition at line 59 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector().
◆ from_range()
|
inlinestatic |
Definition at line 71 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector().
◆ front()
|
inline |
Definition at line 483 of file rrbtree.hpp.
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::front().
◆ get()
|
inline |
Definition at line 471 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend().
Referenced by immer::flex_vector_transient< T, MemoryPolicy, B, BL >::operator[](), and immer::flex_vector< T, MemoryPolicy, B, BL >::operator[]().
◆ get_check()
|
inline |
Definition at line 476 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size.
Referenced by immer::flex_vector_transient< T, MemoryPolicy, B, BL >::at(), and immer::flex_vector< T, MemoryPolicy, B, BL >::at().
◆ get_mut()
|
inline |
Definition at line 458 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::ensure_mutable_tail(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update_mut().
◆ hard_reset()
|
inline |
Definition at line 1163 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::supports_transient_concat, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail.
◆ inc()
|
inline |
Definition at line 134 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail.
◆ operator=() [1/2]
|
inline |
Definition at line 107 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::swap.
◆ operator=() [2/2]
|
inline |
Definition at line 114 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::swap.
◆ push_back()
|
inline |
Definition at line 418 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf_emplace(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_leaf(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_leaf_n(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::push_back(), and immer::flex_vector< T, MemoryPolicy, B, BL >::push_back_move().
◆ push_back_mut()
|
inline |
Definition at line 397 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::ensure_mutable_tail(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::leaf(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_leaf_e(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_fill(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_initializer_list(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::from_range(), immer::flex_vector_transient< T, MemoryPolicy, B, BL >::push_back(), and immer::flex_vector< T, MemoryPolicy, B, BL >::push_back_move().
◆ push_tail()
|
inline |
Definition at line 298 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_inner(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_inner_r(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inner(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_inner_n(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_inner_r_n(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_path(), immer::detail::rbts::make_regular_sub_pos(), immer::detail::rbts::make_relaxed_pos(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back().
◆ push_tail_mut()
|
inline |
Definition at line 341 of file rrbtree.hpp.
References immer::detail::rbts::dec_empty_regular(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_inner_e(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::delete_inner_r_e(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inner(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_inner_e(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_inner_r_e(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::make_path_e(), immer::detail::rbts::make_regular_sub_pos(), immer::detail::rbts::make_relaxed_pos(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut().
◆ region_for()
|
inline |
Definition at line 442 of file rrbtree.hpp.
References immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree_iterator< T, MP, B, BL >::dereference().
◆ tail_offset()
|
inline |
Definition at line 150 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_root(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ tail_size()
|
inline |
Definition at line 145 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ take()
|
inline |
Definition at line 572 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::flex_vector< T, MemoryPolicy, B, BL >::take(), and immer::flex_vector< T, MemoryPolicy, B, BL >::take_move().
◆ take_mut()
|
inline |
Definition at line 531 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::can_mutate(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::copy_leaf_e(), immer::detail::rbts::dec_leaf(), immer::detail::destroy_n(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::empty(), immer::detail::csl::get(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::flex_vector_transient< T, MemoryPolicy, B, BL >::take(), and immer::flex_vector< T, MemoryPolicy, B, BL >::take_move().
◆ traverse() [1/2]
|
inline |
Definition at line 161 of file rrbtree.hpp.
References immer::detail::rbts::make_empty_leaf_pos(), immer::detail::rbts::make_empty_regular_pos(), immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::dec(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::for_each_chunk().
◆ traverse() [2/2]
|
inline |
Definition at line 174 of file rrbtree.hpp.
References immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
◆ traverse_p() [1/2]
|
inline |
Definition at line 193 of file rrbtree.hpp.
References immer::detail::rbts::make_empty_leaf_pos(), immer::detail::rbts::make_empty_regular_pos(), immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::for_each_chunk_p().
◆ traverse_p() [2/2]
|
inline |
Definition at line 206 of file rrbtree.hpp.
References immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
◆ update()
|
inline |
Definition at line 501 of file rrbtree.hpp.
References immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::make_leaf_sub_pos(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail, immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), and immer::detail::rbts::visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::assoc(), immer::flex_vector< T, MemoryPolicy, B, BL >::update(), and immer::flex_vector< T, MemoryPolicy, B, BL >::update_move().
◆ update_mut()
|
inline |
Definition at line 494 of file rrbtree.hpp.
References immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::assoc_mut(), immer::flex_vector_transient< T, MemoryPolicy, B, BL >::update(), and immer::flex_vector< T, MemoryPolicy, B, BL >::update_move().
Friends And Related Function Documentation
◆ concat_mut_l
|
friend |
Definition at line 729 of file rrbtree.hpp.
◆ concat_mut_lr_l
|
friend |
Definition at line 942 of file rrbtree.hpp.
◆ concat_mut_lr_r
|
friend |
Definition at line 1050 of file rrbtree.hpp.
◆ concat_mut_r
|
friend |
Definition at line 827 of file rrbtree.hpp.
◆ swap
|
friend |
Definition at line 120 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::operator=().
Member Data Documentation
◆ root
node_t* immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::root |
Definition at line 44 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_root(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::rrbtree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ shift
shift_t immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::shift |
Definition at line 43 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_root(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::rrbtree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ size
size_t immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::size |
Definition at line 42 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree_iterator< T, MP, B, BL >::advance(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::flex_vector_transient< T, MemoryPolicy, B, BL >::empty(), immer::flex_vector< T, MemoryPolicy, B, BL >::empty(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_check(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::rrbtree(), immer::flex_vector_transient< T, MemoryPolicy, B, BL >::size(), immer::flex_vector< T, MemoryPolicy, B, BL >::size(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_offset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail_size(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ supports_transient_concat
|
static |
Definition at line 726 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset().
◆ tail
node_t* immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::tail |
Definition at line 45 of file rrbtree.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::check_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::ensure_mutable_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::flex_vector< T, MemoryPolicy, B, BL >::flex_vector(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::hard_reset(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::inc(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_back_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::rrbtree(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
The documentation for this struct was generated from the following file:
- src/immer/detail/rbts/rrbtree.hpp