okay

Typesafe, intuitive error-handling for dart . An implementation of rust’s Result type in dart.

ci coverage pub package style: very good analysis License: MIT


.

Installation

In the dependencies: section of your pubspec.yaml, add the following line:

dependencies:
  okay: <latest_version>

Usage

import 'package:okay/okay.dart';

class FallibleOpSuccess {}
class FallibleOpFailure {}

Result<FallibleOpSuccess, FallibleOpFailure> fallibleOp() {
  if (true) {
    return ok(FallibleOpSuccess());
  } else {
    return err(FallibleOpFailure());
  }
}

final result = fallibleOp();

switch(result.type) {
  case ResultType.ok:
    print('Success with value: ${result.unwrap()}');
    break;
  case ResultType.err: 
    print('Failure with error: ${result.unwrapErr()};');
    break;      
}

GitHub

View Github