Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL > Struct Template Reference

#include <rbtree.hpp>

+ Collaboration diagram for immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >:

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

 rbtree (size_t sz, shift_t sh, node_t *r, node_t *t)
 
 rbtree (const rbtree &other)
 
 rbtree (rbtree &&other)
 
rbtreeoperator= (const rbtree &other)
 
rbtreeoperator= (rbtree &&other)
 
 ~rbtree ()
 
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 rbtree &other) const
 
void ensure_mutable_tail (edit_t e, count_t n)
 
void push_back_mut (edit_t e, T value)
 
rbtree push_back (T value) const
 
const T * array_for (size_t index) 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 >
rbtree update (size_t idx, FnT &&fn) const
 
void assoc_mut (edit_t e, size_t idx, T value)
 
rbtree assoc (size_t idx, T value) const
 
rbtree take (size_t new_size) const
 
void take_mut (edit_t e, size_t new_size)
 
bool check_tree () const
 
bool check_tail () const
 
bool check_root () const
 

Static Public Member Functions

static const rbtreeempty ()
 
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_troot
 
node_ttail
 

Friends

void swap (rbtree &x, rbtree &y)
 

Detailed Description

template<typename T, typename MemoryPolicy, bits_t B, bits_t BL>
struct immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >

Definition at line 29 of file rbtree.hpp.

Member Typedef Documentation

◆ edit_t

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
using immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::edit_t = typename node_t::edit_t

Definition at line 32 of file rbtree.hpp.

◆ node_t

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
using immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::node_t = node<T, MemoryPolicy, B, BL>

Definition at line 31 of file rbtree.hpp.

◆ owner_t

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
using immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::owner_t = typename MemoryPolicy::transience_t::owner

Definition at line 33 of file rbtree.hpp.

Constructor & Destructor Documentation

◆ rbtree() [1/3]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::rbtree ( size_t  sz,
shift_t  sh,
node_t r,
node_t t 
)
inline

Definition at line 82 of file rbtree.hpp.

◆ rbtree() [2/3]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::rbtree ( const rbtree< T, MemoryPolicy, B, BL > &  other)
inline

◆ rbtree() [3/3]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::rbtree ( rbtree< T, MemoryPolicy, B, BL > &&  other)
inline

◆ ~rbtree()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::~rbtree ( )
inline

Member Function Documentation

◆ array_for()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
const T* immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::array_for ( size_t  index) const
inline

◆ assoc()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
rbtree immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::assoc ( size_t  idx,
value 
) const
inline

◆ assoc_mut()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::assoc_mut ( edit_t  e,
size_t  idx,
value 
)
inline

◆ back()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
const T& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::back ( ) const
inline

◆ check_root()

◆ check_tail()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
bool immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::check_tail ( ) const
inline

◆ check_tree()

◆ dec()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::dec ( ) const
inline

◆ descend()

◆ empty()

◆ ensure_mutable_tail()

◆ equals()

◆ for_each_chunk() [1/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename Fn >
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::for_each_chunk ( Fn &&  fn) const
inline

◆ for_each_chunk() [2/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename Fn >
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::for_each_chunk ( size_t  first,
size_t  last,
Fn &&  fn 
) const
inline

◆ for_each_chunk_p() [1/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename Fn >
bool immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::for_each_chunk_p ( Fn &&  fn) const
inline

◆ for_each_chunk_p() [2/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename Fn >
bool immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::for_each_chunk_p ( size_t  first,
size_t  last,
Fn &&  fn 
) const
inline

◆ from_fill()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
static auto immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::from_fill ( size_t  n,
v 
)
inlinestatic

◆ from_initializer_list()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename U >
static auto immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::from_initializer_list ( std::initializer_list< U >  values)
inlinestatic

◆ from_range()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename Iter , typename Sent , std::enable_if_t< compatible_sentinel_v< Iter, Sent >, bool > = true>
static auto immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::from_range ( Iter  first,
Sent  last 
)
inlinestatic

◆ front()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
const T& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::front ( ) const
inline

Definition at line 380 of file rbtree.hpp.

Referenced by immer::vector< T, MemoryPolicy, B, BL >::front().

◆ get()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
const T& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::get ( size_t  index) const
inline

◆ get_check()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
const T& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::get_check ( size_t  index) const
inline

◆ get_mut()

◆ inc()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::inc ( ) const
inline

◆ operator=() [1/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
rbtree& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::operator= ( const rbtree< T, MemoryPolicy, B, BL > &  other)
inline

◆ operator=() [2/2]

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
rbtree& immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::operator= ( rbtree< T, MemoryPolicy, B, BL > &&  other)
inline

◆ push_back()

◆ push_back_mut()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::push_back_mut ( edit_t  e,
value 
)
inline

◆ tail_offset()

◆ tail_size()

◆ take()

◆ take_mut()

◆ traverse() [1/2]

◆ traverse() [2/2]

◆ traverse_p() [1/2]

◆ traverse_p() [2/2]

◆ update()

◆ update_mut()

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
template<typename FnT >
void immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::update_mut ( edit_t  e,
size_t  idx,
FnT &&  fn 
)
inline

Friends And Related Function Documentation

◆ swap

template<typename T , typename MemoryPolicy , bits_t B, bits_t BL>
void swap ( rbtree< T, MemoryPolicy, B, BL > &  x,
rbtree< T, MemoryPolicy, B, BL > &  y 
)
friend

Member Data Documentation

◆ root

◆ shift

◆ size

◆ tail


The documentation for this struct was generated from the following file:
Released under the MIT license