#include "json.h"
Collaboration diagram for detail::serializer< BasicJsonType >:Public Member Functions | |
| serializer (const serializer &)=delete | |
| serializer (output_adapter_t< char > s, const char ichar, error_handler_t error_handler_=error_handler_t::strict) | |
| serializer (serializer &&)=delete | |
| ~serializer ()=default | |
| void | dump (const BasicJsonType &val, const bool pretty_print, const bool ensure_ascii, const unsigned int indent_step, const unsigned int current_indent=0) |
| internal implementation of the serialization function | |
| for (std::size_t i=0;i< s.size();++i) | |
| if (JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT)) | |
| serializer & | operator= (const serializer &)=delete |
| serializer & | operator= (serializer &&)=delete |
Public Attributes | |
| JSON_PRIVATE_UNLESS_TESTED | : void dump_escaped(const string_t& s |
| std::size_t | bytes = 0 |
| std::size_t | bytes_after_last_accept = 0 |
| const char | decimal_point = '\0' |
| the locale's decimal point character | |
| else | |
| JSON_PRIVATE_UNLESS_TESTED const bool | ensure_ascii |
| const error_handler_t | error_handler |
| error_handler how to react on decoding errors | |
| const char | indent_char |
| the indentation character | |
| string_t | indent_string |
| the indentation string | |
| const std::lconv * | loc = nullptr |
| the locale | |
| std::array< char, 64 > | number_buffer {{}} |
| a (hopefully) large enough character buffer | |
| std::uint8_t | state = UTF8_ACCEPT |
| std::array< char, 512 > | string_buffer {{}} |
| string buffer | |
| const char | thousands_sep = '\0' |
| the locale's thousand separator character | |
| std::size_t | undumped_chars = 0 |
Private Types | |
| using | binary_char_t = typename BasicJsonType::binary_t::value_type |
| using | number_float_t = typename BasicJsonType::number_float_t |
| using | number_integer_t = typename BasicJsonType::number_integer_t |
| using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
| using | string_t = typename BasicJsonType::string_t |
Static Private Attributes | |
| static constexpr std::uint8_t | UTF8_ACCEPT = 0 |
| static constexpr std::uint8_t | UTF8_REJECT = 1 |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
delete |
|
delete |
|
default |
|
inline |
internal implementation of the serialization function
This function is called by the public member function dump and organizes the serialization internally. The indentation level is propagated as additional parameter. In case of arrays and objects, the function is called recursively.
escape_string()operator<<"%g" format| [in] | val | value to serialize |
| [in] | pretty_print | whether the output shall be pretty-printed |
| [in] | ensure_ascii | If ensure_ascii is true, all non-ASCII characters in the output are escaped with \uXXXX sequences, and the result consists of ASCII characters only. |
| [in] | indent_step | the indent level |
| [in] | current_indent | the current indent level (only used internally) |
Definition at line 18919 of file json.h.
References JSON_ASSERT, and JSON_HEDLEY_UNLIKELY.
|
inline |
Definition at line 19213 of file json.h.
References detail::concat(), JSON_ASSERT, JSON_THROW, and detail::binary_writer< BasicJsonType, CharType >::to_char_type().
Here is the call graph for this function:
|
inline |
|
delete |
|
delete |
| JSON_PRIVATE_UNLESS_TESTED detail::serializer< BasicJsonType >::__pad0__ |
| std::size_t detail::serializer< BasicJsonType >::bytes = 0 |
| std::size_t detail::serializer< BasicJsonType >::bytes_after_last_accept = 0 |
| const char detail::serializer< BasicJsonType >::decimal_point = '\0' |
| detail::serializer< BasicJsonType >::else |
| JSON_PRIVATE_UNLESS_TESTED const bool detail::serializer< BasicJsonType >::ensure_ascii |
| const error_handler_t detail::serializer< BasicJsonType >::error_handler |
| const char detail::serializer< BasicJsonType >::indent_char |
| string_t detail::serializer< BasicJsonType >::indent_string |
| const std::lconv* detail::serializer< BasicJsonType >::loc = nullptr |
| std::array<char, 64> detail::serializer< BasicJsonType >::number_buffer {{}} |
| std::uint8_t detail::serializer< BasicJsonType >::state = UTF8_ACCEPT |
| std::array<char, 512> detail::serializer< BasicJsonType >::string_buffer {{}} |
| const char detail::serializer< BasicJsonType >::thousands_sep = '\0' |
| std::size_t detail::serializer< BasicJsonType >::undumped_chars = 0 |
|
staticconstexprprivate |
|
staticconstexprprivate |