when<T> method

T when<T>({
  1. required T added(
    1. Added
    ),
  2. required T updated(
    1. Updated
    ),
  3. required T removed(
    1. Removed
    ),
})

Implementation

T when<T>(
    {required T Function(Added) added,
    required T Function(Updated) updated,
    required T Function(Removed) removed}) {
  if (this is Added) return added(this as Added);
  if (this is Updated) return updated(this as Updated);
  if (this is Removed) return removed(this as Removed);
  throw Exception('Invalid Change');
}