blob: 3b734b09384c074c460d19026a508f04afdaf2cf [file] [log] [blame]
import '../core/exception.dart';
import 'result.dart';
/// An immutable parse result in case of a failed parse.
class Failure<R> extends Result<R> {
const Failure(super.buffer, super.position, this.message);
@override
bool get isFailure => true;
@override
R get value => throw ParserException(this);
@override
final String message;
@override
Result<T> map<T>(T Function(R element) callback) => failure(message);
@override
String toString() => 'Failure[${toPositionString()}]: $message';
}