Either<L, R>.either constructor
Creates a left-biased Either. This means, if the leftProvider
returns
a non-null value create a left-sided Either. Alternatively, if the
rightProvider
returns a non-null value, create a right-sided Either.
Otherwise, if both providers return a null-value, throw a StateError.
Implementation
factory Either.either(
Map0<L?> leftProvider,
Map0<R?> rightProvider,
) {
final leftValue = leftProvider();
if (leftValue != null) {
return Either<L, R>.left(leftValue);
}
final rightValue = rightProvider();
if (rightValue != null) {
return Either<L, R>.right(rightValue);
}
throw noValueError;
}