in common/util/cpp/HsStruct.cpp [103:126]
void HsJSON::construct(HsJSON&& other) {
DCHECK(this != &other);
type = other.type;
switch (type) {
case Type::Null:
break;
case Type::Bool:
case Type::Integral:
integral = other.integral;
break;
case Type::Real:
real = other.real;
break;
case Type::String:
new (&string) HsString(std::move(other.string));
break;
case Type::Array:
new (&array) HsArray<HsJSON>(std::move(other.array));
break;
case Type::Object:
new (&object) HsObject<HsJSON>(std::move(other.object));
break;
}
}