Lumiera
0.pre.03
»edit your freedom«
|
opaque private data structure to apply the diff.
This class offers to build a binding for diff messages, which basically maps its internal structures onto the generic "object" scheme underlying the diff language.
Definition at line 86 of file diff-complex-application-test.cpp.
Public Member Functions | |
Opaque (string keyID) | |
Opaque (idi::BareEntryID id) | |
Opaque (Opaque const &o) | |
void | buildMutator (TreeMutator::Handle buff) |
the only way this opaque object exposes itself for mutation through diff messages. More... | |
string | identity () const |
bool | isTyped () const |
const Opaque * | nestedDelta () const |
const Opaque * | nestedObj_1 () const |
operator string () const | |
Opaque & | operator= (Opaque const &o) |
bool | verifyAlpha (int x) const |
bool | verifyBeta (int64_t x) const |
bool | verifyData (string desc) const |
bool | verifyGamma (double x) const |
bool | verifyType (string x) const |
Friends | |
constexpr size_t | treeMutatorSize (const Opaque *) |
override default size traits to allow for sufficient buffer, able to hold the mutator defined above. | |
Private Attributes | |
int | alpha_ = -1 |
int64_t | beta_ = -1 |
unique_ptr< Opaque > | delta_ |
double | gamma_ = -1 |
idi::BareEntryID | key_ |
vector< string > | nestedData_ |
vector< Opaque > | nestedObj_ |
string | type_ = Rec::TYPE_NIL |
|
inline |
the only way this opaque object exposes itself for mutation through diff messages.
This function builds a TreeMutator implementation into the given buffer space
collection(nestedData_)
isApplicableIf
) actually decides if a binding layer becomes responsible for a given diff verb. Here, this decision is based on the classification of the verb or spec to be handled, either being an attribute (named, key-value pair), a nested sub-scope ("object") and finally just any unnamed (non attribute) valueOpaque
Definition at line 202 of file diff-complex-application-test.cpp.
References TreeMutator::build(), Opaque::buildMutator(), lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection(), PlantingHandle< BA, DEFAULT >::emplace(), DataCap::isNested(), and lib::diff::anonymous_namespace{test-mutation-target.hpp}::render().
Referenced by Opaque::buildMutator().