FVariantOperation<K extends FVariantConstraint, E extends FVariant, V, D extends Delta>.match constructor
FVariantOperation<K extends FVariantConstraint, E extends FVariant, V, D extends Delta>.match (
- Set<
E> variants, - D delta
Applies delta to existing variants whose constraint's variants are all present in variants.
// Given base: 0, {a: 1, b: 2, c: 3, a & b: 4, a & c: 5}
.match({a, b}, AddDelta(10)) // base: 0, {a: 11, b: 12, c: 3, a & b: 14, a & c: 5}
See also:
- FVariantOperation.exact for setting exact constraint entries.
- FVariantOperation.base for applying to the base.
- FVariantOperation.variants for applying to all variants.
- FVariantOperation.all for applying to all variants and base.
Implementation
FVariantOperation.match(Set<E> variants, D delta)
: _call = ((base, existing) => .raw(base, {
for (final MapEntry(key: constraint, :value) in existing.entries)
constraint: constraint.satisfiedBy(variants) ? delta(value) as V : value,
}));