void createDynamic()

in common/util/cpp/cdynamic.cpp [98:124]


void createDynamic(dynamic* ret, DType ty, DValue* val) noexcept {
  switch (static_cast<dynamic::Type>(ty)) {
    case dynamic::NULLT:
      new (ret) dynamic(nullptr);
      break;
    case dynamic::BOOL:
      new (ret) dynamic(val->boolean != 0);
      break;
    case dynamic::INT64:
      new (ret) dynamic(val->int64);
      break;
    case dynamic::DOUBLE:
      new (ret) dynamic(val->doubl);
      break;
    case dynamic::STRING:
      new (ret) dynamic(val->string);
      break;
    case dynamic::ARRAY:
      folly::terminate_with<std::invalid_argument>(
          "call writeDynamicArray for dynamic::ARRAY");
    case dynamic::OBJECT:
      folly::terminate_with<std::invalid_argument>(
          "call writeDynamicObject for dynamic::OBJECT");
    default:
      __builtin_unreachable();
  }
}