merge method
Merges instances of the same type.
Implementation
@override
ShapeBorderMix<T> merge(covariant ShapeBorderMix<T>? other) {
// Use pattern matching for type-safe same-type merging only
return switch ((this, other)) {
(RoundedRectangleBorderMix a, RoundedRectangleBorderMix b) => a.merge(
b,
),
(BeveledRectangleBorderMix a, BeveledRectangleBorderMix b) => a.merge(
b,
),
(ContinuousRectangleBorderMix a, ContinuousRectangleBorderMix b) =>
a.merge(b),
(RoundedSuperellipseBorderMix a, RoundedSuperellipseBorderMix b) =>
a.merge(b),
(CircleBorderMix a, CircleBorderMix b) => a.merge(b),
(StarBorderMix a, StarBorderMix b) => a.merge(b),
(LinearBorderMix a, LinearBorderMix b) => a.merge(b),
(StadiumBorderMix a, StadiumBorderMix b) => a.merge(b),
_ => throw ArgumentError(
'Cannot merge different ShapeBorder types: $runtimeType and ${other.runtimeType}. '
'Cross-type merging should be handled by ShapeBorderMerger.',
),
}
as ShapeBorderMix<T>;
}