90 #ifndef LIB_DIFF_MUTATION_MESSAGE_H 91 #define LIB_DIFF_MUTATION_MESSAGE_H 115 using DiffStep = TreeDiffLanguage::DiffStep;
116 using DiffSource = IterSource<DiffStep>;
170 template<
typename...ARGS>
181 :
_FrontEnd{iter_source::wrapIter (std::forward<IT>(ii))}
192 :
_FrontEnd{iter_source::eachEntry(container)}
212 : std::vector<DiffStep>
216 for ( ; srcMsg; ++srcMsg )
221 using _VecIter = DiffSnapshot::iterator;
245 operator string()
const override 247 return "Diff--{"+util::join (static_cast<DiffSnapshot> (*
this))+
"}";
Decorator to be layered transparently on top of MutationMessage.
MutationMessage(ARGS &&...args)
Convenience builder to take an arbitrary number of DiffStep arguments.
MutationMessage(CON &container, enable_if< __and_< can_STL_ForEach< CON >, __not_< can_IterForEach< CON >>>, void *>=nullptr)
Convenience builder to use elements form any STL-like container.
Opaque message to effect a structural change on a target, which is likewise only known in an abstract...
Implementation namespace for support and library code.
MutationMessage(DiffSource *diffGenerationContext)
MutationMessage builder: take ownership of an opaque heap allocated context from which the concrete d...
MutationMessage(IT &&ii, enable_if< can_IterForEach< IT >, void *>=nullptr)
Convenience builder to piggyback any Lumiera Forward Iterator.
Iteration source interface to abstract a data source, which then can be accessed through IterAdapter ...
Generic building block for tree shaped (meta)data structures.
MutationMessage(std::initializer_list< DiffStep > const &&ili)
Convenience builder for consuming an brace enclosed initializer_list.
MutationMessage & updateDiagnostics()
enable support to show content of the message.
A token language to represent structural changes in a tree like hierarchical data structure...
"materialised view" of the diff sequence
Lumiera error handling (C++ interface).
static iterator build(IterSource &sourceImpl)
build an iterator frontend for the given source,
Accessing a STL element range through a Lumiera forward iterator, An instance of this iterator adapte...
Preconfigured adapters for some STL container standard usage situations.
Extension module to build an opaque data source, accessible as Lumiera Forward Iterator.
Standard implementation of the IterSource interface: a wrapped "Lumiera Forward Iterator".