mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 21:43:31 +00:00
29 lines
670 B
Dart
29 lines
670 B
Dart
import 'package:result_monad/result_monad.dart';
|
|
|
|
class ExecError {
|
|
final ErrorType type;
|
|
final String message;
|
|
|
|
ExecError({required this.type, this.message = ''});
|
|
|
|
@override
|
|
String toString() {
|
|
return 'ExecError{type: $type, message: $message}';
|
|
}
|
|
}
|
|
|
|
enum ErrorType {
|
|
authentication,
|
|
localError,
|
|
missingEndpoint,
|
|
notFound,
|
|
parsingError,
|
|
}
|
|
|
|
extension ExecErrorExtension<T, E> on Result<T, E> {
|
|
Result<T, ExecError> execErrorCast() => mapError((error) => error is ExecError
|
|
? error
|
|
: ExecError(type: ErrorType.localError, message: error.toString()));
|
|
|
|
FutureResult<T, ExecError> execErrorCastAsync() async => execErrorCast();
|
|
}
|