Implementation
static void encode(XdrDataOutputStream stream, XdrSCVal encoded) {
stream.writeInt(encoded.discriminant.value);
switch (encoded.discriminant) {
case XdrSCValType.SCV_U63:
XdrInt64.encode(stream, encoded.u63!);
break;
case XdrSCValType.SCV_U32:
XdrUint32.encode(stream, encoded.u32!);
break;
case XdrSCValType.SCV_I32:
XdrInt32.encode(stream, encoded.i32!);
break;
case XdrSCValType.SCV_STATIC:
XdrSCStatic.encode(stream, encoded.ic!);
break;
case XdrSCValType.SCV_OBJECT:
if (encoded.obj != null) {
stream.writeInt(1);
XdrSCObject.encode(stream, encoded.obj!);
} else {
stream.writeInt(0);
}
break;
case XdrSCValType.SCV_SYMBOL:
stream.writeString(encoded.sym!);
break;
case XdrSCValType.SCV_BITSET:
XdrUint64.encode(stream, encoded.bits!);
break;
case XdrSCValType.SCV_STATUS:
XdrSCStatus.encode(stream, encoded.status!);
break;
}
}