Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

position.hpp File Reference
#include <immer/config.hpp>
#include <immer/detail/rbts/bits.hpp>
#include <cassert>
#include <utility>
#include <type_traits>
+ Include dependency graph for position.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  immer::detail::rbts::empty_regular_pos< NodeT >
 
struct  immer::detail::rbts::empty_leaf_pos< NodeT >
 
struct  immer::detail::rbts::leaf_pos< NodeT >
 
struct  immer::detail::rbts::leaf_sub_pos< NodeT >
 
struct  immer::detail::rbts::leaf_descent_pos< NodeT >
 
struct  immer::detail::rbts::full_leaf_pos< NodeT >
 
struct  immer::detail::rbts::regular_pos< NodeT >
 
struct  immer::detail::rbts::null_sub_pos
 
struct  immer::detail::rbts::singleton_regular_sub_pos< NodeT >
 
struct  immer::detail::rbts::regular_sub_pos< NodeT >
 
struct  immer::detail::rbts::regular_descent_pos< NodeT, Shift, B, BL >
 
struct  immer::detail::rbts::regular_descent_pos< NodeT, BL, B, BL >
 
struct  immer::detail::rbts::full_pos< NodeT >
 
struct  immer::detail::rbts::relaxed_pos< NodeT >
 
struct  immer::detail::rbts::relaxed_descent_pos< NodeT, Shift, B, BL >
 
struct  immer::detail::rbts::relaxed_descent_pos< NodeT, BL, B, BL >
 

Namespaces

 immer
 
 immer::detail
 
 immer::detail::rbts
 

Typedefs

template<typename Pos >
using immer::detail::rbts::node_type = typename std::decay< Pos >::type::node_t
 
template<typename Pos >
using immer::detail::rbts::edit_type = typename std::decay< Pos >::type::node_t::edit_t
 
template<typename Pos >
using immer::detail::rbts::is_relaxed = std::is_same< relaxed_pos< typename std::decay_t< Pos >::node_t >, std::decay_t< Pos > >
 

Functions

template<typename NodeT >
empty_regular_pos< NodeT > immer::detail::rbts::make_empty_regular_pos (NodeT *node)
 
template<typename NodeT >
empty_leaf_pos< NodeT > immer::detail::rbts::make_empty_leaf_pos (NodeT *node)
 
template<typename NodeT >
leaf_pos< NodeT > immer::detail::rbts::make_leaf_pos (NodeT *node, size_t size)
 
template<typename NodeT >
leaf_sub_pos< NodeT > immer::detail::rbts::make_leaf_sub_pos (NodeT *node, count_t count)
 
template<typename NodeT >
leaf_descent_pos< NodeT > immer::detail::rbts::make_leaf_descent_pos (NodeT *node)
 
template<typename NodeT >
full_leaf_pos< NodeT > immer::detail::rbts::make_full_leaf_pos (NodeT *node)
 
template<typename Pos , typename Visitor , typename... Args>
void immer::detail::rbts::each_regular (Pos &&p, Visitor v, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
bool immer::detail::rbts::each_pred_regular (Pos &&p, Visitor v, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
bool immer::detail::rbts::each_pred_zip_regular (Pos &&p, Visitor v, node_type< Pos > *other, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
bool immer::detail::rbts::each_pred_i_regular (Pos &&p, Visitor v, count_t f, count_t l, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
bool immer::detail::rbts::each_pred_left_regular (Pos &&p, Visitor v, count_t last, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
bool immer::detail::rbts::each_pred_right_regular (Pos &&p, Visitor v, count_t start, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
void immer::detail::rbts::each_i_regular (Pos &&p, Visitor v, count_t f, count_t l, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
void immer::detail::rbts::each_left_regular (Pos &&p, Visitor v, count_t last, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
void immer::detail::rbts::each_right_regular (Pos &&p, Visitor v, count_t start, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
decltype(auto) immer::detail::rbts::towards_oh_ch_regular (Pos &&p, Visitor v, size_t idx, count_t offset_hint, count_t count_hint, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
decltype(auto) immer::detail::rbts::towards_sub_oh_regular (Pos &&p, Visitor v, size_t idx, count_t offset_hint, Args &&... args)
 
template<typename Pos , typename Visitor , typename... Args>
decltype(auto) immer::detail::rbts::last_oh_regular (Pos &&p, Visitor v, count_t offset_hint, Args &&... args)
 
template<typename NodeT >
regular_pos< NodeT > immer::detail::rbts::make_regular_pos (NodeT *node, shift_t shift, size_t size)
 
template<typename NodeT >
auto immer::detail::rbts::make_singleton_regular_sub_pos (NodeT *leaf, count_t count)
 
template<typename NodeT >
regular_sub_pos< NodeT > immer::detail::rbts::make_regular_sub_pos (NodeT *node, shift_t shift, size_t size)
 
template<typename NodeT , typename Visitor >
decltype(auto) immer::detail::rbts::visit_regular_descent (NodeT *node, shift_t shift, Visitor v, size_t idx)
 
template<typename NodeT >
full_pos< NodeT > immer::detail::rbts::make_full_pos (NodeT *node, shift_t shift)
 
template<typename NodeT >
relaxed_pos< NodeT > immer::detail::rbts::make_relaxed_pos (NodeT *node, shift_t shift, typename NodeT::relaxed_t *relaxed)
 
template<typename NodeT , typename Visitor , typename... Args>
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub (NodeT *node, shift_t shift, size_t size, Visitor v, Args &&...args)
 
template<typename NodeT , typename Visitor , typename... Args>
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_descent (NodeT *node, shift_t shift, Visitor v, size_t idx)
 

Variables

template<typename Pos >
constexpr auto immer::detail::rbts::bits = std::decay_t<Pos>::node_t::bits
 
template<typename Pos >
constexpr auto immer::detail::rbts::bits_leaf = std::decay_t<Pos>::node_t::bits_leaf
 
template<typename Pos >
constexpr auto immer::detail::rbts::is_relaxed_v = is_relaxed<Pos>::value
 
Released under the MIT license