result_or 0.8.4 copy "result_or: ^0.8.4" to clipboard
result_or: ^0.8.4 copied to clipboard

Easy error handling implementation based on ResultOrError/Either idea.

example/lib/main.dart

import 'package:result_or/result_or.dart';

import 'functions.dart';

void main() async {
  /// With ResultOr simply call your functions in bloc/store/etc, or anywhere else, wrapped in ResultOr.
  /// Get result data or error.

  var result = ResultOr.from(someFunction);
  // var result = someFunction.resultOr();

  if (result case ResultData())  {
    print(result.data);
  } else if (result case ResultError()) {
    print(result.error.message);
  }

  // Callback function example
  ResultOr.from(someFunction,
      onSuccess: (data) {
        print(data);
      },
      onError: (error) {
        print(error.message);
      }
  );

  // Future function example + switch/case
  var result2 = await ResultOr.fromFuture(someFutureFunction);

  switch (result2) {
    case ResultData():
      print(result2.data);
    case ResultError():
      print(result2.error.message);
  }

  // Parametrized function example
  var result3 = ResultOr.from(() => someFunctionWithParam(2));

  if (result3 case ResultData())  {
    print(result3.data);
  } else if (result3 case ResultError()) {
    print(result3.error.message);
  }

  // Parametrized future function example
  var result4 = await ResultOr.fromFuture(() => someFutureFunctionWithParam("Param"));

  if (result4 case ResultData())  {
    print(result4.data);
  } else if (result4 case ResultError()) {
    print(result4.error.message);
  }

  // Using extensions
  someFunction.resultOr(
      onSuccess: (data) {
        print(data);
      },
      onError: (error) {
        print(error.message);
      }
  );

  // Using extensions and async without callbacks
  var result5 = await someFutureFunction.resultOr();

  if (result5 case ResultData())  {
    print(result5.data);
  } else if (result5 case ResultError()) {
    print(result5.error.message);
  }

  // Using extensions and async with params
  var result6 = await (() => someFutureFunctionWithParam("param")).resultOr();

  if (result6 case ResultData())  {
    print(result6.data);
  } else if (result6 case ResultError()) {
    print(result6.error.message);
  }

}
2
likes
0
points
22
downloads

Publisher

unverified uploader

Weekly Downloads

Easy error handling implementation based on ResultOrError/Either idea.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on result_or