decode method Null safety

XdrInvokeHostFunctionResult decode(
  1. XdrDataInputStream stream
)

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;
}