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