tap method

Result<T> tap({
  1. void onSuccess(
    1. T value
    )?,
  2. void onFailure(
    1. Failure failure
    )?,
})

Side-effect без трансформации. Возвращает исходный Result.

result.tap(
  onSuccess: (data) => logger.info('Loaded: ${data.length}'),
  onFailure: (f) => logger.error(f.userMessage),
);

Implementation

Result<T> tap({
  void Function(T value)? onSuccess,
  void Function(Failure failure)? onFailure,
}) {
  switch (this) {
    case Right(:final value):
      onSuccess?.call(value);
    case Left(:final failure):
      onFailure?.call(failure);
  }
  return this;
}