| 26 | } |
| 27 | |
| 28 | void item_from_json(CoolProp::ConfigurationItem& item, const nlohmann::json& val) { |
| 29 | switch (item.get_type()) { |
| 30 | case CONFIGURATION_BOOL_TYPE: |
| 31 | if (!val.is_boolean()) { |
| 32 | throw CoolProp::ValueError(format("Input is not boolean")); |
| 33 | } |
| 34 | item.set_bool(val.get<bool>()); |
| 35 | break; |
| 36 | case CONFIGURATION_INTEGER_TYPE: |
| 37 | if (!val.is_number_integer()) { |
| 38 | throw CoolProp::ValueError(format("Input is not integer")); |
| 39 | } |
| 40 | item.set_integer(val.get<int>()); |
| 41 | break; |
| 42 | case CONFIGURATION_DOUBLE_TYPE: |
| 43 | if (!val.is_number()) { |
| 44 | throw CoolProp::ValueError(format("Input [%s] is not double (or something that can be cast to double)", val.dump().c_str())); |
| 45 | } |
| 46 | item.set_double(val.get<double>()); |
| 47 | break; |
| 48 | case CONFIGURATION_STRING_TYPE: |
| 49 | if (!val.is_string()) { |
| 50 | throw CoolProp::ValueError(format("Input is not string")); |
| 51 | } |
| 52 | item.set_string(val.get<std::string>()); |
| 53 | break; |
| 54 | case CONFIGURATION_ENDOFLIST_TYPE: |
| 55 | case CONFIGURATION_NOT_DEFINED_TYPE: |
| 56 | throw CoolProp::ValueError(); |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | } // namespace |
| 61 |
no test coverage detected