Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp} Namespace Reference

Typedefs

template<class C >
using _AsVector = std::vector< typename C::value_type >
 
template<class C >
using _AsMap = std::map< typename C::key_type, typename C::mapped_type >
 
template<class C >
using IF_is_vector = lib::meta::enable_if< std::is_base_of< _AsVector< C >, C > >
 
template<class C >
using IF_is_map = lib::meta::enable_if< std::is_base_of< _AsMap< 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 , 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
 
template<class COLL >
auto collection (COLL &coll)
 Entry point to a nested DSL for setup and configuration of a collection binding.
 

Typedef Documentation

◆ _AsVector

template<class C >
using _AsVector = std::vector<typename C::value_type>

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

◆ _AsMap

template<class C >
using _AsMap = std::map<typename C::key_type, typename C::mapped_type>

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

◆ IF_is_vector

template<class C >
using IF_is_vector = lib::meta::enable_if< std::is_base_of<_AsVector<C>, C> >

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

◆ IF_is_map

template<class C >
using IF_is_map = lib::meta::enable_if< std::is_base_of<_AsMap<C>, C> >

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


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

◆ createCollectionBindingBuilder()

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 
)
inline

builder function to synthesise builder type from given functors

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

References createCollectionBindingBuilder().

Referenced by _EmptyBinding< ELM >::attachTo(), and createCollectionBindingBuilder().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ collection()

template<class COLL >
auto 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.

References collection().

Referenced by CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::assignElement(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::buildChildMutator(), collection(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::constructFrom(), CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >::initMutation(), CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >::inject(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::isApplicableIf(), CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >::locate(), CollectionBindingBuilder< COLL, MAT, CTR, SEL, ASS, MUT >::matchElement(), CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >::recentElm(), and CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >::recentElmIter().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: