encode static method
Implementation
static void encode(XdrDataOutputStream stream, XdrSCVal encoded) {
stream.writeInt(encoded.discriminant.value);
switch (encoded.discriminant) {
case XdrSCValType.SCV_BOOL:
stream.writeBoolean(encoded.b!);
break;
case XdrSCValType.SCV_VOID:
break;
case XdrSCValType.SCV_ERROR:
XdrSCError.encode(stream, encoded.error!);
break;
case XdrSCValType.SCV_U32:
XdrUint32.encode(stream, encoded.u32!);
break;
case XdrSCValType.SCV_I32:
XdrInt32.encode(stream, encoded.i32!);
break;
case XdrSCValType.SCV_U64:
XdrUint64.encode(stream, encoded.u64!);
break;
case XdrSCValType.SCV_I64:
XdrInt64.encode(stream, encoded.i64!);
break;
case XdrSCValType.SCV_TIMEPOINT:
XdrUint64.encode(stream, encoded.timepoint!);
break;
case XdrSCValType.SCV_DURATION:
XdrUint64.encode(stream, encoded.duration!);
break;
case XdrSCValType.SCV_U128:
XdrUInt128Parts.encode(stream, encoded.u128!);
break;
case XdrSCValType.SCV_I128:
XdrInt128Parts.encode(stream, encoded.i128!);
break;
case XdrSCValType.SCV_U256:
XdrUInt256Parts.encode(stream, encoded.u256!);
break;
case XdrSCValType.SCV_I256:
XdrInt256Parts.encode(stream, encoded.i256!);
break;
case XdrSCValType.SCV_BYTES:
XdrDataValue.encode(stream, encoded.bytes!);
break;
case XdrSCValType.SCV_STRING:
stream.writeString(encoded.str!);
break;
case XdrSCValType.SCV_SYMBOL:
stream.writeString(encoded.sym!);
break;
case XdrSCValType.SCV_VEC:
if (encoded.vec == null) {
stream.writeInt(0);
} else {
stream.writeInt(1);
int vecSize = encoded.vec!.length;
stream.writeInt(vecSize);
for (int i = 0; i < vecSize; i++) {
XdrSCVal.encode(stream, encoded.vec![i]);
}
}
break;
case XdrSCValType.SCV_MAP:
if (encoded.map == null) {
stream.writeInt(0);
} else {
stream.writeInt(1);
int mapSize = encoded.map!.length;
stream.writeInt(mapSize);
for (int i = 0; i < mapSize; i++) {
XdrSCMapEntry.encode(stream, encoded.map![i]);
}
}
break;
case XdrSCValType.SCV_ADDRESS:
XdrSCAddress.encode(stream, encoded.address!);
break;
case XdrSCValType.SCV_LEDGER_KEY_CONTRACT_INSTANCE:
break;
case XdrSCValType.SCV_LEDGER_KEY_NONCE:
XdrSCNonceKey.encode(stream, encoded.nonce_key!);
break;
case XdrSCValType.SCV_CONTRACT_INSTANCE:
XdrSCContractInstance.encode(stream, encoded.instance!);
break;
}
}