either_option 2.0.0 copy "either_option: ^2.0.0" to clipboard
either_option: ^2.0.0 copied to clipboard

The simple library for Error Handling with functionnal programming concept

example/lib/either_option_example.dart

import 'package:either_option/either_option.dart';

import 'model/server_error.dart';
import 'model/user.dart';
import 'repository_example.dart';

/// You can combine all functions defined in src/either.dart and src/option.dart
main() async {
  final Repository repository = Repository();

  print("------Either Example---------");
  final Either<ServerError, User> res = await repository.getUser(3);
  final defaultUser = User(id: 0, username: "ko", password: "ko");
  final userName = res.fold((_) => defaultUser.username, (user) => user.id);
  print(userName); // "User 3"

  print("---------Option Example---------");
  final maybeUser = await repository.getUserOpt(345);
  final userNone = maybeUser.getOrElse(() => defaultUser);
  print(userNone); // User(0, ko, ko)

  print("---------Option Example 2---------");
  String f(A a) => a.toString();
  final some = Option.of(B());
  print(some.map((s) => f(s)));
}

class A {
  @override
  String toString() => "Im a A";
}

class B extends A {
  @override
  String toString() => "Im a B";
}
41
likes
130
pub points
87%
popularity

Publisher

unverified uploader

The simple library for Error Handling with functionnal programming concept

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

test

More

Packages that depend on either_option