好的

为 dart 提供类型安全、直观的错误处理。 dart 中 rust 的 Result 类型的实现。

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


.

安装

pubspec.yamldependencies: 部分,添加以下行

dependencies:
  okay: <latest_version>

用法

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

查看 Github