relatica/lib/models/exec_error.dart

30 wiersze
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();
}