maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult basicGroup(
    1. ChatTypeBasicGroup value
    )?,
  2. TResult private(
    1. ChatTypePrivate value
    )?,
  3. TResult secret(
    1. ChatTypeSecret value
    )?,
  4. TResult supergroup(
    1. ChatTypeSupergroup value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(ChatTypeBasicGroup value)? basicGroup,
  TResult Function(ChatTypePrivate value)? private,
  TResult Function(ChatTypeSecret value)? secret,
  TResult Function(ChatTypeSupergroup value)? supergroup,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case ChatTypeBasicGroup.constructor:
      if (basicGroup != null) {
        return basicGroup.call(this as ChatTypeBasicGroup);
      }
      break;
    case ChatTypePrivate.constructor:
      if (private != null) {
        return private.call(this as ChatTypePrivate);
      }
      break;
    case ChatTypeSecret.constructor:
      if (secret != null) {
        return secret.call(this as ChatTypeSecret);
      }
      break;
    case ChatTypeSupergroup.constructor:
      if (supergroup != null) {
        return supergroup.call(this as ChatTypeSupergroup);
      }
      break;
  }
  return orElse.call();
}