merge(~) feature for Composite State and Properties #708
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Up until now,
Composite::State
andComposite::Properties
has had acopy(~)
function which will do a deep copy making the contents of one instance exactly the same as the contents of another instance.This PR adds a
merge
function which will allow the receiving instance to hang onto any entries it has which are not present in the sending instance. So suppose we have:Then
receiver
will get theAspect1
contents ofsender
, but it will also get to keep its ownAspect2
contents. On the other hand if we usedreceiver.copy(sender)
instead, thenreceiver
would lose itsAspect2
contents in order to be a perfect duplicate ofsender
.I've also added a
has<Aspect>()
function forComposite::State
andComposite::Properties
.This change is