Goby3 3.5.1
2026.06.04
Loading...
Searching...
No Matches
detail::serializer< BasicJsonType > Class Template Reference

#include <goby/util/thirdparty/nlohmann/json.hpp>

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
 ~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))

Public Attributes

JSON_PRIVATE_UNLESS_TESTED : 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
 enable_if_t< std::is_signed< NumberType >::value, int >
 enable_if_t< std::is_unsigned< NumberType >::value, int >
*a *(hopefully) large enough character buffer std the locale const std::lconv * loc = nullptr
*the locale s thousand separator character const char thousands_sep = '\0'
*the locale s decimal point character const char decimal_point = '\0'
*string buffer std::array< char, 512 > string_buffer {{}}
*the indentation character const char indent_char
*the indentation string string_t indent_string
*error_handler how to react on decoding errors const error_handler_t error_handler

Detailed Description

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

Definition at line 18772 of file json.hpp.

Constructor & Destructor Documentation

◆ serializer() [1/3]

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 18788 of file json.hpp.

◆ serializer() [2/3]

template<typename BasicJsonType>
detail::serializer< BasicJsonType >::serializer ( const serializer< BasicJsonType > & )
delete

◆ serializer() [3/3]

template<typename BasicJsonType>
detail::serializer< BasicJsonType >::serializer ( serializer< BasicJsonType > && )
delete

◆ ~serializer()

template<typename BasicJsonType>
detail::serializer< BasicJsonType >::~serializer ( )
default

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 18828 of file json.hpp.

◆ for()

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

Definition at line 19122 of file json.hpp.

◆ if()

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

Definition at line 19311 of file json.hpp.

◆ operator=() [1/2]

template<typename BasicJsonType>
serializer & detail::serializer< BasicJsonType >::operator= ( const serializer< BasicJsonType > & )
delete

◆ operator=() [2/2]

template<typename BasicJsonType>
serializer & detail::serializer< BasicJsonType >::operator= ( serializer< BasicJsonType > && )
delete

Member Data Documentation

◆ __pad0__

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

Definition at line 19097 of file json.hpp.

◆ bytes

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

Definition at line 19116 of file json.hpp.

◆ bytes_after_last_accept

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

Definition at line 19119 of file json.hpp.

◆ decimal_point

template<typename BasicJsonType>
* the locale s decimal point character const char detail::serializer< BasicJsonType >::decimal_point = '\0'

Definition at line 19694 of file json.hpp.

◆ else

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

Definition at line 19319 of file json.hpp.

◆ enable_if_t< std::is_signed< NumberType >::value, int >

template<typename BasicJsonType>
detail::serializer< BasicJsonType >::enable_if_t< std::is_signed< NumberType >::value, int >
Initial value:
= 0>
bool is_negative_number(NumberType x)
{
return x < 0;
}
template < typename NumberType

Definition at line 19319 of file json.hpp.

◆ enable_if_t< std::is_unsigned< NumberType >::value, int >

template<typename BasicJsonType>
detail::serializer< BasicJsonType >::enable_if_t< std::is_unsigned< NumberType >::value, int >
Initial value:
= 0 >
bool is_negative_number(NumberType )
{
return false;
}
template < typename NumberType

Definition at line 19319 of file 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 19112 of file json.hpp.

◆ error_handler

template<typename BasicJsonType>
* error_handler how to react on decoding errors const error_handler_t detail::serializer< BasicJsonType >::error_handler

Definition at line 19705 of file json.hpp.

◆ indent_char

template<typename BasicJsonType>
* the indentation character const char detail::serializer< BasicJsonType >::indent_char

Definition at line 19700 of file json.hpp.

◆ indent_string

template<typename BasicJsonType>
* the indentation string string_t detail::serializer< BasicJsonType >::indent_string

Definition at line 19702 of file json.hpp.

◆ loc

template<typename BasicJsonType>
* a* (hopefully) large enough character buffer std the locale const std::lconv* detail::serializer< BasicJsonType >::loc = nullptr

Definition at line 19690 of file json.hpp.

◆ state

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

Definition at line 19115 of file json.hpp.

◆ string_buffer

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

Definition at line 19697 of file json.hpp.

◆ thousands_sep

template<typename BasicJsonType>
* the locale s thousand separator character const char detail::serializer< BasicJsonType >::thousands_sep = '\0'

Definition at line 19692 of file json.hpp.

◆ undumped_chars

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

Definition at line 19120 of file json.hpp.


The documentation for this class was generated from the following file:
  • goby/util/thirdparty/nlohmann/json.hpp