Skip to content

Instantly share code, notes, and snippets.

@Bringoff
Last active May 7, 2021 09:37
Show Gist options
  • Select an option

  • Save Bringoff/08fb0867923215421f4627c252e36fd1 to your computer and use it in GitHub Desktop.

Select an option

Save Bringoff/08fb0867923215421f4627c252e36fd1 to your computer and use it in GitHub Desktop.
void main() {
final result = SuccessFailure<int, void>.success(null);
if (result.isSuccess) { // надо будет result.isSuccess && result.success != null. Вообще весь смысл этого класса теряется
print(result.success + 5);
}
}
typedef Callback<T> = void Function(T value);
class SuccessFailure<S, F> {
factory SuccessFailure.success([S result = null]) {
return SuccessFailure._success(result, null);
}
factory SuccessFailure.failure([F failure = null]) {
return SuccessFailure._failure(null, failure);
}
final bool _isSuccess;
SuccessFailure._success(this._success, this._failure) : _isSuccess = true;
SuccessFailure._failure(this._success, this._failure) : _isSuccess = false;
final S _success;
final F _failure;
bool get isSuccess => _isSuccess;
bool get isFailure => !isSuccess;
S get success => _success;
F get failure => _failure;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment