parseAsync method
void
parseAsync(
- State<
ChunkedData< state,I> > - ResultCallback<
(O1, O2, O3, O4, O5, O6)> onDone
override
Implementation
@override
void parseAsync(State<ChunkedData<I>> state,
ResultCallback<(O1, O2, O3, O4, O5, O6)> onDone) {
final input = state.input;
final pos = state.pos;
Result<O1>? r1;
Result<O2>? r2;
Result<O3>? r3;
Result<O4>? r4;
Result<O5>? r5;
Result<O6>? r6;
void parse6() {
p6.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
r6 = result;
onDone(Result((
r1!.value,
r2!.value,
r3!.value,
r4!.value,
r5!.value,
r6!.value,
)));
}
});
}
void parse5() {
p5.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
r5 = result;
input.handle(parse6);
}
});
}
void parse4() {
p4.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
r4 = result;
input.handle(parse5);
}
});
}
void parse3() {
p3.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
r3 = result;
input.handle(parse4);
}
});
}
void parse2() {
p2.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
r2 = result;
input.handle(parse3);
}
});
}
void parse() {
p1.parseAsync(state, (result) {
if (result == null) {
onDone(null);
} else {
r1 = result;
input.handle(parse2);
}
});
}
parse();
}