! @param[in] j JSON value to serialize @pre j.type() == value_t::object */
| 14973 | @pre j.type() == value_t::object |
| 14974 | */ |
| 14975 | void write_bson(const BasicJsonType& j) |
| 14976 | { |
| 14977 | switch (j.type()) |
| 14978 | { |
| 14979 | case value_t::object: |
| 14980 | { |
| 14981 | write_bson_object(*j.m_value.object); |
| 14982 | break; |
| 14983 | } |
| 14984 | |
| 14985 | case value_t::null: |
| 14986 | case value_t::array: |
| 14987 | case value_t::string: |
| 14988 | case value_t::boolean: |
| 14989 | case value_t::number_integer: |
| 14990 | case value_t::number_unsigned: |
| 14991 | case value_t::number_float: |
| 14992 | case value_t::binary: |
| 14993 | case value_t::discarded: |
| 14994 | default: |
| 14995 | { |
| 14996 | JSON_THROW(type_error::create(317, concat("to serialize to BSON, top-level type must be object, but is ", j.type_name()), &j)); |
| 14997 | } |
| 14998 | } |
| 14999 | } |
| 15000 | |
| 15001 | /*! |
| 15002 | @param[in] j JSON value to serialize |