Implementation
static XdrInvokeHostFunctionResult decode(XdrDataInputStream stream) {
XdrInvokeHostFunctionResult decoded = XdrInvokeHostFunctionResult(
XdrInvokeHostFunctionResultCode.decode(stream));
switch (decoded.discriminant) {
case XdrInvokeHostFunctionResultCode.INVOKE_HOST_FUNCTION_SUCCESS:
int successSize = stream.readInt();
List<XdrSCVal> success = List<XdrSCVal>.empty(growable: true);
for (int i = 0; i < successSize; i++) {
success.add(XdrSCVal.decode(stream));
}
decoded.success = success;
break;
case XdrInvokeHostFunctionResultCode.INVOKE_HOST_FUNCTION_MALFORMED:
case XdrInvokeHostFunctionResultCode.INVOKE_HOST_FUNCTION_TRAPPED:
case XdrInvokeHostFunctionResultCode.INVOKE_HOST_FUNCTION_RESOURCE_LIMIT_EXCEEDED:
break;
default:
break;
}
return decoded;
}