Lumiera  0.pre.03
»edit your freedom«
lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp} Namespace Reference

Typedefs

template<class C >
using _AsMap = std::map< typename C::key_type, typename C::mapped_type >
 
template<class C >
using _AsVector = std::vector< typename C::value_type >
 
template<class C >
using IF_is_map = lib::meta::enable_if< std::is_base_of< _AsMap< C >, C > >
 
template<class C >
using IF_is_vector = lib::meta::enable_if< std::is_base_of< _AsVector< C >, C > >
 

Classes

struct  _DefaultBinding
 starting point for configuration of a binding to STL container. More...
 
struct  _DefaultBinding< ELM, enable_if< can_wrap_in_GenNode< ELM > > >
 
struct  _DefaultBinding< GenNode >
 standard configuration to deal with GenNode collections. More...
 
struct  _EmptyBinding
 
class  ChildCollectionMutator
 Attach to collection: Building block for a concrete TreeMutator. More...
 
struct  CollectionBinding
 Attach to collection: Concrete binding setup. More...
 
struct  CollectionBindingBuilder
 Nested DSL to define the specifics of a collection binding. More...
 
struct  ContainerTraits
 Helper for uniform treatment of various STL containers. More...
 
struct  ContainerTraits< M, IF_is_map< M > >
 
struct  ContainerTraits< V, IF_is_vector< V > >
 

Functions

template<class COLL >
auto collection (COLL &coll)
 Entry point to a nested DSL for setup and configuration of a collection binding. More...
 
template<class COLL , class MAT , class CTR , class SEL , class ASS , class MUT >
auto createCollectionBindingBuilder (COLL &coll, MAT m, CTR c, SEL s, ASS a, MUT u)
 builder function to synthesise builder type from given functors
 

Class Documentation

◆ lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::ContainerTraits

struct lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::ContainerTraits
+ Collaboration diagram for ContainerTraits< C, SEL >:

Function Documentation

◆ collection()

auto lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection ( COLL &  coll)
inline

Entry point to a nested DSL for setup and configuration of a collection binding.

This function shall be used right within Builder::attach() and wrap a language reference to the concrete collection implementing the "object children". The result is a default configured binding, which could be further adapted with the builder functions, using lambdas as callback into the otherwise opaque implementation code.

Definition at line 739 of file tree-mutator-collection-binding.hpp.

Referenced by CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::assignElement(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::buildChildMutator(), TimelineController::buildMutator(), DiffTreeMutationListener_test::buildMutator(), InteractionDirector::buildMutator(), Opaque::buildMutator(), MockElm::buildMutator(), TrackPresenter::buildMutator(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::constructFrom(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::isApplicableIf(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::matchElement(), and TreeMutatorBinding_test::mutateCollection().

+ Here is the caller graph for this function: