in common/util/cpp/cdynamic.cpp [19:50]
void readDynamic(const dynamic* d, DType* ty, DValue* val) noexcept {
switch (d->type()) {
case dynamic::STRING:
*ty = tString;
val->string = d->c_str();
break;
case dynamic::BOOL:
*ty = tBool;
val->boolean = d->asBool();
break;
case dynamic::DOUBLE:
*ty = tDouble;
val->doubl = d->asDouble();
break;
case dynamic::INT64:
*ty = tInt64;
val->int64 = d->asInt();
break;
case dynamic::ARRAY:
*ty = tArray;
val->size = d->size();
break;
case dynamic::OBJECT:
*ty = tObject;
val->size = d->size();
break;
case dynamic::NULLT:
*ty = tNull;
val->null = nullptr;
break;
}
}