parseAsync method

  1. @override
AsyncResult<Object?> parseAsync(
  1. State<ChunkedData<I>> state
)
override

Experimental. Not yet fully implemented

Implementation

@override
AsyncResult<Object?> parseAsync(State<ChunkedData<I>> state) {
  final result = AsyncResult<Object?>();
  final pos = state.pos;
  final r1 = p.parseAsync(state);
  void handle() {
    if ((result.ok = r1.ok) == true) {
      state.pos = pos;
      result.value = const Result<Object?>(null);
    }

    state.input.handler = result.handler;
  }

  if (r1.ok != null) {
    handle();
  } else {
    r1.handler = handle;
  }

  return result;
}