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.
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 |