Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
•All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
position.hpp File Reference
#include <immer/config.hpp>
#include <immer/detail/rbts/bits.hpp>
#include <cassert>
#include <utility>
#include <type_traits>


Go to the source code of this file.
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 |