when<T> method

T when<T>({
  1. required T rectangle(
    1. RectangleRegion rectangle
    ),
  2. required T circle(
    1. CircleRegion circle
    ),
  3. required T line(
    1. LineRegion line
    ),
  4. required T customPolygon(
    1. CustomPolygonRegion customPolygon
    ),
})

Output a value of type T dependent on this and its type

Implementation

T when<T>({
  required T Function(RectangleRegion rectangle) rectangle,
  required T Function(CircleRegion circle) circle,
  required T Function(LineRegion line) line,
  required T Function(CustomPolygonRegion customPolygon) customPolygon,
}) =>
    switch (this) {
      RectangleRegion() => rectangle(this as RectangleRegion),
      CircleRegion() => circle(this as CircleRegion),
      LineRegion() => line(this as LineRegion),
      CustomPolygonRegion() => customPolygon(this as CustomPolygonRegion),
    };