maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult myPrivacyRestricted(
    1. MessageReadDateMyPrivacyRestricted value
    )?,
  2. TResult read(
    1. MessageReadDateRead value
    )?,
  3. TResult tooOld(
    1. MessageReadDateTooOld value
    )?,
  4. TResult unread(
    1. MessageReadDateUnread value
    )?,
  5. TResult userPrivacyRestricted(
    1. MessageReadDateUserPrivacyRestricted value
    )?,
  6. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(MessageReadDateMyPrivacyRestricted value)?
  myPrivacyRestricted,
  TResult Function(MessageReadDateRead value)? read,
  TResult Function(MessageReadDateTooOld value)? tooOld,
  TResult Function(MessageReadDateUnread value)? unread,
  TResult Function(MessageReadDateUserPrivacyRestricted value)?
  userPrivacyRestricted,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case MessageReadDateMyPrivacyRestricted.constructor:
      if (myPrivacyRestricted != null) {
        return myPrivacyRestricted.call(
          this as MessageReadDateMyPrivacyRestricted,
        );
      }
      break;
    case MessageReadDateRead.constructor:
      if (read != null) {
        return read.call(this as MessageReadDateRead);
      }
      break;
    case MessageReadDateTooOld.constructor:
      if (tooOld != null) {
        return tooOld.call(this as MessageReadDateTooOld);
      }
      break;
    case MessageReadDateUnread.constructor:
      if (unread != null) {
        return unread.call(this as MessageReadDateUnread);
      }
      break;
    case MessageReadDateUserPrivacyRestricted.constructor:
      if (userPrivacyRestricted != null) {
        return userPrivacyRestricted.call(
          this as MessageReadDateUserPrivacyRestricted,
        );
      }
      break;
  }
  return orElse.call();
}