encode_DartFn_Inputs__Output_unit_AnyhowException method
Future<void> Function(int)
encode_DartFn_Inputs__Output_unit_AnyhowException(
- FutureOr<
void> raw()
Implementation
Future<void> Function(
int,
) encode_DartFn_Inputs__Output_unit_AnyhowException(
FutureOr<void> Function() raw) {
return (
callId,
) async {
Box<void>? rawOutput;
Box<AnyhowException>? rawError;
try {
rawOutput = Box(await raw());
} catch (e, s) {
rawError = Box(AnyhowException("$e\n\n$s"));
}
final serializer = SseSerializer(generalizedFrbRustBinding);
assert((rawOutput != null) ^ (rawError != null));
if (rawOutput != null) {
serializer.buffer.putUint8(0);
sse_encode_unit(rawOutput.value, serializer);
} else {
serializer.buffer.putUint8(1);
sse_encode_AnyhowException(rawError!.value, serializer);
}
final output = serializer.intoRaw();
generalizedFrbRustBinding.dartFnDeliverOutput(
callId: callId,
ptr: output.ptr,
rustVecLen: output.rustVecLen,
dataLen: output.dataLen);
};
}