SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Public Attributes | Private Types | Static Private Attributes | List of all members
detail::serializer< BasicJsonType > Class Template Reference

Public Member Functions

 serializer (output_adapter_t< char > s, const char ichar, error_handler_t error_handler_=error_handler_t::strict)
 
 serializer (const serializer &)=delete
 
serializeroperator= (const serializer &)=delete
 
 serializer (serializer &&)=delete
 
serializeroperator= (serializer &&)=delete
 
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 More...
 
 for (std::size_t i=0;i< s.size();++i)
 
 if (JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT))
 

Public Attributes

JSON_PRIVATE_UNLESS_TESTED __pad0__: void dump_escaped(const string_t& s
 
JSON_PRIVATE_UNLESS_TESTED const bool ensure_ascii
 
std::uint8_t state = UTF8_ACCEPT
 
std::size_t bytes = 0
 
std::size_t bytes_after_last_accept = 0
 
std::size_t undumped_chars = 0
 
 else
 
std::array< char, 64 > number_buffer {{}}
 a (hopefully) large enough character buffer More...
 
const std::lconv * loc = nullptr
 the locale More...
 
const char thousands_sep = '\0'
 the locale's thousand separator character More...
 
const char decimal_point = '\0'
 the locale's decimal point character More...
 
std::array< char, 512 > string_buffer {{}}
 string buffer More...
 
const char indent_char
 the indentation character More...
 
string_t indent_string
 the indentation string More...
 
const error_handler_t error_handler
 error_handler how to react on decoding errors More...
 

Private Types

using string_t = typename BasicJsonType::string_t
 
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 binary_char_t = typename BasicJsonType::binary_t::value_type
 

Static Private Attributes

static constexpr std::uint8_t UTF8_ACCEPT = 0
 
static constexpr std::uint8_t UTF8_REJECT = 1
 

Detailed Description

template<typename BasicJsonType>
class detail::serializer< BasicJsonType >

Definition at line 17973 of file nlohmann_json.hpp.

Member Typedef Documentation

◆ string_t

template<typename BasicJsonType >
using detail::serializer< BasicJsonType >::string_t = typename BasicJsonType::string_t
private

Definition at line 17975 of file nlohmann_json.hpp.

◆ number_float_t

template<typename BasicJsonType >
using detail::serializer< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t
private

Definition at line 17976 of file nlohmann_json.hpp.

◆ number_integer_t

template<typename BasicJsonType >
using detail::serializer< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t
private

Definition at line 17977 of file nlohmann_json.hpp.

◆ number_unsigned_t

template<typename BasicJsonType >
using detail::serializer< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t
private

Definition at line 17978 of file nlohmann_json.hpp.

◆ binary_char_t

template<typename BasicJsonType >
using detail::serializer< BasicJsonType >::binary_char_t = typename BasicJsonType::binary_t::value_type
private

Definition at line 17979 of file nlohmann_json.hpp.

Constructor & Destructor Documentation

◆ serializer()

template<typename BasicJsonType >
detail::serializer< BasicJsonType >::serializer ( output_adapter_t< char >  s,
const char  ichar,
error_handler_t  error_handler_ = error_handler_t::strict 
)
inline
Parameters
[in]soutput stream to serialize to
[in]icharindentation character to use
[in]error_handler_how to react on decoding errors

Definition at line 17989 of file nlohmann_json.hpp.

Member Function Documentation

◆ dump()

template<typename BasicJsonType >
void detail::serializer< BasicJsonType >::dump ( const BasicJsonType &  val,
const bool  pretty_print,
const bool  ensure_ascii,
const unsigned int  indent_step,
const unsigned int  current_indent = 0 
)
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.

  • strings and object keys are escaped using escape_string()
  • integer numbers are converted implicitly via operator<<
  • floating-point numbers are converted to a string using "%g" format
  • binary values are serialized as objects containing the subtype and the byte array
Parameters
[in]valvalue to serialize
[in]pretty_printwhether the output shall be pretty-printed
[in]ensure_asciiIf 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_stepthe indent level
[in]current_indentthe current indent level (only used internally)

Definition at line 18029 of file nlohmann_json.hpp.

◆ for()

template<typename BasicJsonType >
detail::serializer< BasicJsonType >::for ( )
inline

Definition at line 18323 of file nlohmann_json.hpp.

◆ if()

template<typename BasicJsonType >
detail::serializer< BasicJsonType >::if ( JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT)  )
inline

Definition at line 18512 of file nlohmann_json.hpp.

Member Data Documentation

◆ UTF8_ACCEPT

template<typename BasicJsonType >
constexpr std::uint8_t detail::serializer< BasicJsonType >::UTF8_ACCEPT = 0
staticconstexprprivate

Definition at line 17980 of file nlohmann_json.hpp.

◆ UTF8_REJECT

template<typename BasicJsonType >
constexpr std::uint8_t detail::serializer< BasicJsonType >::UTF8_REJECT = 1
staticconstexprprivate

Definition at line 17981 of file nlohmann_json.hpp.

◆ __pad0__

template<typename BasicJsonType >
JSON_PRIVATE_UNLESS_TESTED detail::serializer< BasicJsonType >::__pad0__

Definition at line 18298 of file nlohmann_json.hpp.

◆ ensure_ascii

template<typename BasicJsonType >
JSON_PRIVATE_UNLESS_TESTED const bool detail::serializer< BasicJsonType >::ensure_ascii
Initial value:
{
std::uint32_t codepoint{}

Definition at line 18313 of file nlohmann_json.hpp.

◆ state

template<typename BasicJsonType >
std::uint8_t detail::serializer< BasicJsonType >::state = UTF8_ACCEPT

Definition at line 18316 of file nlohmann_json.hpp.

◆ bytes

template<typename BasicJsonType >
std::size_t detail::serializer< BasicJsonType >::bytes = 0

Definition at line 18317 of file nlohmann_json.hpp.

◆ bytes_after_last_accept

template<typename BasicJsonType >
std::size_t detail::serializer< BasicJsonType >::bytes_after_last_accept = 0

Definition at line 18320 of file nlohmann_json.hpp.

◆ undumped_chars

template<typename BasicJsonType >
std::size_t detail::serializer< BasicJsonType >::undumped_chars = 0

Definition at line 18321 of file nlohmann_json.hpp.

◆ else

template<typename BasicJsonType >
detail::serializer< BasicJsonType >::else

Definition at line 18520 of file nlohmann_json.hpp.

◆ number_buffer

template<typename BasicJsonType >
std::array<char, 64> detail::serializer< BasicJsonType >::number_buffer {{}}

a (hopefully) large enough character buffer

Definition at line 18888 of file nlohmann_json.hpp.

◆ loc

template<typename BasicJsonType >
const std::lconv* detail::serializer< BasicJsonType >::loc = nullptr

the locale

Definition at line 18891 of file nlohmann_json.hpp.

◆ thousands_sep

template<typename BasicJsonType >
const char detail::serializer< BasicJsonType >::thousands_sep = '\0'

the locale's thousand separator character

Definition at line 18893 of file nlohmann_json.hpp.

◆ decimal_point

template<typename BasicJsonType >
const char detail::serializer< BasicJsonType >::decimal_point = '\0'

the locale's decimal point character

Definition at line 18895 of file nlohmann_json.hpp.

◆ string_buffer

template<typename BasicJsonType >
std::array<char, 512> detail::serializer< BasicJsonType >::string_buffer {{}}

string buffer

Definition at line 18898 of file nlohmann_json.hpp.

◆ indent_char

template<typename BasicJsonType >
const char detail::serializer< BasicJsonType >::indent_char

the indentation character

Definition at line 18901 of file nlohmann_json.hpp.

◆ indent_string

template<typename BasicJsonType >
string_t detail::serializer< BasicJsonType >::indent_string

the indentation string

Definition at line 18903 of file nlohmann_json.hpp.

◆ error_handler

template<typename BasicJsonType >
const error_handler_t detail::serializer< BasicJsonType >::error_handler

error_handler how to react on decoding errors

Definition at line 18906 of file nlohmann_json.hpp.


The documentation for this class was generated from the following file: