pick method

void pick({
  1. dynamic onError(
    1. Error error
    )?,
  2. dynamic onNoError(
    1. Data? data
    )?,
  3. dynamic onData(
    1. Data data
    )?,
  4. dynamic onNoData()?,
})

Cherry pick values

onError will return error, if present onNoError will return data if error is not present onData will return data if data is available onNoData will return if data is not available

Implementation

void pick({
  Function(Error error)? onError,
  Function(Data? data)? onNoError,
  Function(Data data)? onData,
  Function()? onNoData,
}) {
  if (hasError) {
    if (onError != null) {
      // ignore: null_check_on_nullable_type_parameter
      onError(error!);
    }

    return;
  }

  if (onNoError != null) {
    onNoError(data);

    return;
  }

  if (hasData) {
    if (onData != null) {
      // ignore: null_check_on_nullable_type_parameter
      onData(data!);
    }

    return;
  }

  if (onNoData != null) {
    onNoData();

    return;
  }
}