encode method Null safety

void encode(
  1. XdrDataOutputStream stream,
  2. XdrSCVal encoded
)

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