safe<T> method

T safe<T>({
  1. required T android(),
  2. required T ios(),
  3. required T web(),
  4. required T macos(),
  5. T desktop()?,
})

Safely calls the platform-specific action for current platform.

Implementation

T safe<T>({
  required T Function() android,
  required T Function() ios,
  required T Function() web,
  required T Function() macos,
  T Function()? desktop,
}) {
  if (current_platform.isAndroid) {
    return android();
  } else if (current_platform.isIOS) {
    return ios();
  } else if (current_platform.isMacOS) {
    return macos();
  } else if (current_platform.isWeb) {
    return web();
  } else if (current_platform.isLinux || current_platform.isWindows) {
    if (desktop != null) {
      return desktop();
    }
    throw UnsupportedError(
      'No desktop handler provided for this action on Linux/Windows',
    );
  }

  throw UnsupportedError('Unknown platform');
}