either_option 2.0.1-dev.1 copy "either_option: ^2.0.1-dev.1" to clipboard
either_option: ^2.0.1-dev.1 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
150
points
1.27k
downloads

Publisher

unverified uploader

Weekly Downloads

The simple library for Error Handling with functionnal programming concept

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

test

More

Packages that depend on either_option