merge method

  1. @override
ShapeBorderMix<T> merge(
  1. covariant ShapeBorderMix<T>? other
)
override

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>;
}