mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 16:24:07 +02:00
28 lines
689 B
Dart
28 lines
689 B
Dart
sealed class Result<T, E> {
|
|
Result<Y, E> map<Y>(Y Function(T value) mapper);
|
|
Result<Y, E> flatMap<Y>(Result<Y, E> Function(T value) mapper);
|
|
}
|
|
|
|
final class Ok<T, E> implements Result<T, E> {
|
|
final T value;
|
|
|
|
const Ok(this.value);
|
|
|
|
@override
|
|
Result<Y, E> map<Y>(Y Function(T value) mapper) => Ok(mapper(value));
|
|
@override
|
|
Result<Y, E> flatMap<Y>(Result<Y, E> Function(T value) mapper) =>
|
|
mapper(value);
|
|
}
|
|
|
|
final class Err<T, E> implements Result<T, E> {
|
|
final E value;
|
|
|
|
const Err(this.value);
|
|
|
|
@override
|
|
Result<Y, E> map<Y>(Y Function(T value) mapper) => Err(value);
|
|
@override
|
|
Result<Y, E> flatMap<Y>(Result<Y, E> Function(T value) mapper) => Err(value);
|
|
}
|