Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Definitions and Properties to guide automated tree mutator binding.
Decision how to access the target structure and how to construct a suitable TreeMutator as attached to this opaque target data.
In a nutshell, if some private data structure wants to receive mutation diff messages...
void buildMutator(TreeMutator::Handle)
Additionally, when the size of the custom TreeMutator object exceeds some hard wired limit (200 bytes), then the target type also needs to define the extension point size_t treeMutatorSize(TargetType)
All of this boils down to somewhere / somehow using the TreeMutator::Builder (a DSL API) to construct a custom binding, which allows to talk to our private data structure through the TreeMutator interface.
Definition in file tree-diff-traits.hpp.
#include "lib/diff/tree-mutator.hpp"
#include "lib/diff/diff-mutable.hpp"
#include "lib/null-value.hpp"
#include "lib/util.hpp"
#include <utility>
#include <stack>
Classes | |
struct | defines_custom_BufferSize< T > |
class | exposes_MutatorBuilder< T > |
helper to detect presence of a TreeMutator builder function More... | |
struct | TreeDiffTraits< TAR, SEL > |
struct | TreeDiffTraits< TAR, enable_if< exposes_MutatorBuilder< TAR > > > |
struct | TreeDiffTraits< TAR, enable_if< is_base_of< DiffMutable, TAR > > > |
struct | TreeMutatorSizeTraits< TAR, SEL > |
Heuristics to guide the allocation for nested TreeMutator. More... | |
struct | TreeMutatorSizeTraits< TAR, enable_if< defines_custom_BufferSize< TAR > > > |
class | TreeDiffTraits< TAR, enable_if< exposes_MutatorBuilder< TAR > > >::Wrapper |
Functions | |
template<typename T > | |
constexpr T * | getSelector () |
template<class TAR > | |
TreeDiffTraits< TAR >::Ret | mutatorBinding (TAR &subject) |
public access point to this configuration machinery More... | |
constexpr size_t | treeMutatorSize (...) |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |
TreeDiffTraits<TAR>::Ret lib::diff::mutatorBinding | ( | TAR & | subject | ) |
public access point to this configuration machinery
auto
typed variable to hold the return value in local scope as long as necessary Definition at line 204 of file tree-diff-traits.hpp.
References lib::diff::mutatorBinding().
Referenced by lib::diff::mutatorBinding().