decode method Null safety

XdrSCStatus decode(
  1. XdrDataInputStream stream
)

Implementation

static XdrSCStatus decode(XdrDataInputStream stream) {
  XdrSCStatus decoded = XdrSCStatus(XdrSCStatusType.decode(stream));
  switch (decoded.discriminant) {
    case XdrSCStatusType.SST_OK:
      break;
    case XdrSCStatusType.SST_UNKNOWN_ERROR:
      decoded.unknownCode = XdrSCUnknownErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_VALUE_ERROR:
      decoded.valCode = XdrSCHostValErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_OBJECT_ERROR:
      decoded.objCode = XdrSCHostObjErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_FUNCTION_ERROR:
      decoded.fnCode = XdrSCHostFnErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_STORAGE_ERROR:
      decoded.storageCode = XdrSCHostStorageErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_CONTEXT_ERROR:
      decoded.contextCode = XdrSCHostContextErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_VM_ERROR:
      decoded.vmCode = XdrSCVmErrorCode.decode(stream);
      break;
    case XdrSCStatusType.SST_CONTRACT_ERROR:
      decoded.contractCode = XdrUint32.decode(stream);
      break;
    case XdrSCStatusType.SST_HOST_AUTH_ERROR:
      decoded.authCode = XdrSCHostAuthErrorCode.decode(stream);
      break;
  }
  return decoded;
}