merge method
Merges this attribute set with attribute
and returns result as a new
attribute set.
Performs compaction if attribute
is an "unset" value, e.g. removes
corresponding attribute from this set completely.
See also put method which does not perform compaction and allows constructing styles with "unset" values.
Implementation
NotusStyle merge(NotusAttribute attribute) {
final merged = Map<String, NotusAttribute>.from(_data);
if (attribute.isUnset) {
merged.remove(attribute.key);
} else {
merged[attribute.key] = attribute;
}
return NotusStyle._(merged);
}