parseOn method

  1. @override
Result<List<R>> parseOn(
  1. Context context
)
override

Primitive method doing the actual parsing.

The method is overridden in concrete subclasses to implement the parser specific logic. The methods takes a parse context and returns the resulting context, which is either a Success or Failure context.

Implementation

@override
Result<List<R>> parseOn(Context context) {
  final result = delegate.parseOn(context);
  if (result is Failure) return result;
  final value = result.value;
  final values = List.generate(indexes.length, (i) {
    final index = indexes[i];
    return value[index < 0 ? value.length + index : index];
  }, growable: false);
  return result.success(values);
}