mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
2dac3705d2
* Changing the name of the function to 'to_json_string' from 'to_string' to avoid confusion. * Moving to a fast string_view model * Making it exception-safe. * Tweaking. * Workaround for exceptions. * more robust to_json_string (#1651) * WIP. * Fuzzing timeout (bug fix) (#1650) * prove pull request #1648 introduces an infinite loop * Interesting bug! * Tweak. Co-authored-by: Paul Dreik <github@pauldreik.se> * It should now work. * Moving car examples to exception mode * Simplifying somewhat. * I forgot to abandon. Let us do that. * Adding more tests. * WIP. * It should now work. * Moving car examples to exception mode * Simplifying somewhat. * I forgot to abandon. Let us do that. * Adding more tests. Co-authored-by: Paul Dreik <github@pauldreik.se> Co-authored-by: Paul Dreik <github@pauldreik.se>
79 lines
3.6 KiB
C++
79 lines
3.6 KiB
C++
#include "simdjson/dom/serialization.h"
|
|
#include "simdjson/error.h"
|
|
|
|
namespace simdjson {
|
|
/**
|
|
* Create a string-view instance out of a document instance. The string-view instance
|
|
* contains JSON text that is suitable to be parsed as JSON again.
|
|
*/
|
|
inline simdjson_result<std::string_view> to_json_string(SIMDJSON_IMPLEMENTATION::ondemand::document& x) noexcept;
|
|
/**
|
|
* Create a string-view instance out of a value instance. The string-view instance
|
|
* contains JSON text that is suitable to be parsed as JSON again. The value must
|
|
* not have been accessed previously.
|
|
*/
|
|
inline simdjson_result<std::string_view> to_json_string(SIMDJSON_IMPLEMENTATION::ondemand::value& x) noexcept;
|
|
/**
|
|
* Create a string-view instance out of an object instance. The string-view instance
|
|
* contains JSON text that is suitable to be parsed as JSON again.
|
|
*/
|
|
inline simdjson_result<std::string_view> to_json_string(SIMDJSON_IMPLEMENTATION::ondemand::object& x) noexcept;
|
|
/**
|
|
* Create a string-view instance out of an array instance. The string-view instance
|
|
* contains JSON text that is suitable to be parsed as JSON again.
|
|
*/
|
|
inline simdjson_result<std::string_view> to_json_string(SIMDJSON_IMPLEMENTATION::ondemand::array& x) noexcept;
|
|
#if SIMDJSON_EXCEPTIONS
|
|
inline simdjson_result<std::string_view> to_json_string(simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::document> x);
|
|
inline simdjson_result<std::string_view> to_json_string(simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value> x);
|
|
inline simdjson_result<std::string_view> to_json_string(simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::object> x);
|
|
inline simdjson_result<std::string_view> to_json_string(simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::array> x);
|
|
#endif
|
|
} // namespace simdjson
|
|
|
|
|
|
/**
|
|
* Print JSON to an output stream.
|
|
*
|
|
* @param out The output stream.
|
|
* @param value The element.
|
|
* @throw if there is an error with the underlying output stream. simdjson itself will not throw.
|
|
*/
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::SIMDJSON_IMPLEMENTATION::ondemand::value x);
|
|
#if SIMDJSON_EXCEPTIONS
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result<simdjson::SIMDJSON_IMPLEMENTATION::ondemand::value> x);
|
|
#endif
|
|
/**
|
|
* Print JSON to an output stream.
|
|
*
|
|
* @param out The output stream.
|
|
* @param value The array.
|
|
* @throw if there is an error with the underlying output stream. simdjson itself will not throw.
|
|
*/
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::SIMDJSON_IMPLEMENTATION::ondemand::array value);
|
|
#if SIMDJSON_EXCEPTIONS
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result<simdjson::SIMDJSON_IMPLEMENTATION::ondemand::array> x);
|
|
#endif
|
|
/**
|
|
* Print JSON to an output stream.
|
|
*
|
|
* @param out The output stream.
|
|
* @param value The array.
|
|
* @throw if there is an error with the underlying output stream. simdjson itself will not throw.
|
|
*/
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document& value);
|
|
#if SIMDJSON_EXCEPTIONS
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result<simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document> x);
|
|
#endif
|
|
/**
|
|
* Print JSON to an output stream.
|
|
*
|
|
* @param out The output stream.
|
|
* @param value The object.
|
|
* @throw if there is an error with the underlying output stream. simdjson itself will not throw.
|
|
*/
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::SIMDJSON_IMPLEMENTATION::ondemand::object value);
|
|
#if SIMDJSON_EXCEPTIONS
|
|
inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result<simdjson::SIMDJSON_IMPLEMENTATION::ondemand::object> x);
|
|
#endif
|