DAW JSON Link
Classes | Namespaces | Typedefs | Functions | Variables
daw_json_to_string.h File Reference
#include "daw_json_assert.h"
#include "daw_json_parse_iso8601_utils.h"
#include "daw_json_value.h"
#include "namespace.h"
#include <daw/daw_algorithm.h>
#include <daw/daw_arith_traits.h>
#include <daw/daw_bounded_vector.h>
#include <daw/daw_move.h>
#include <daw/daw_traits.h>
#include <utf8/unchecked.h>
#include <array>
#include <ciso646>
#include <optional>
#include <sstream>
#include <string>
#include <third_party/dragonbox/dragonbox.h>
#include <tuple>
#include <type_traits>
#include <variant>

Go to the source code of this file.

Classes

struct  DAW_JSON_NS::json_details::base_int_type_impl< T, bool >
 
struct  DAW_JSON_NS::json_details::base_int_type_impl< T, true >
 
struct  DAW_JSON_NS::custom_to_converter_t< T >
 

Namespaces

 DAW_JSON_NS
 
 DAW_JSON_NS::json_details
 
 DAW_JSON_NS::json_details::to_strings
 
 DAW_JSON_NS::json_details::to_strings::to_string_test
 
 DAW_JSON_NS::utils
 
 DAW_JSON_NS::utils::utils_details
 

Typedefs

template<typename T >
using DAW_JSON_NS::json_details::base_int_type_t = typename base_int_type_impl< T, std::is_enum_v< T > >::type
 
template<typename T >
using DAW_JSON_NS::json_details::deref_t = daw::remove_cvref_t< decltype(deref_detect(std::declval< T >()))>
 
template<typename T >
using DAW_JSON_NS::json_details::to_strings::has_to_string = daw::is_detected< to_string_test::to_string_result, T >
 
template<typename JsonMember >
using DAW_JSON_NS::json_details::tag_member_t = typename JsonMember::tag_member
 
template<typename T >
using DAW_JSON_NS::json_details::to_strings::to_string_test::to_string_result = decltype(to_string_test(std::declval< T >()))
 

Functions

template<bool do_escape = false, EightBitModes EightBitMode = EightBitModes::AllowFull, typename OutputIterator , typename Range >
constexpr OutputIterator DAW_JSON_NS::utils::copy_to_iterator (OutputIterator it, basic_json_value< Range > const &jv)
 
template<bool do_escape = false, EightBitModes EightBitMode = EightBitModes::AllowFull, typename OutputIterator >
constexpr OutputIterator DAW_JSON_NS::utils::copy_to_iterator (OutputIterator it, char const *ptr)
 
template<bool do_escape = false, EightBitModes EightBitMode = EightBitModes::AllowFull, typename OutputIterator , typename Container , daw::enable_when_t< traits::is_container_like_v< daw::remove_cvref_t< Container >>> = nullptr>
constexpr OutputIterator DAW_JSON_NS::utils::copy_to_iterator (OutputIterator it, Container const &container)
 
constexpr void DAW_JSON_NS::json_details::deref_detect (...)
 
template<typename T >
constexpr auto DAW_JSON_NS::json_details::deref_detect (T &&value) -> decltype(*value)
 
template<typename Integer , typename OutputIterator >
constexpr OutputIterator DAW_JSON_NS::utils::integer_to_string (OutputIterator it, Integer const &value)
 
template<typename T >
constexpr bool DAW_JSON_NS::json_details::is_null (std::optional< T > const &v)
 
template<typename T >
constexpr bool DAW_JSON_NS::json_details::is_null (T const &)
 
template<typename Key , typename Value >
constexpr Key const & DAW_JSON_NS::json_details::json_get_key (std::pair< Key, Value > const &kv)
 
template<typename Key , typename Value >
constexpr Value const & DAW_JSON_NS::json_details::json_get_value (std::pair< Key, Value > const &kv)
 
template<typename JsonMember , typename OutputIterator , typename T >
constexpr OutputIterator DAW_JSON_NS::json_details::member_to_string (OutputIterator it, T const &value)
 
template<typename OutputIterator >
constexpr OutputIterator DAW_JSON_NS::json_details::output_hex (std::uint16_t c, OutputIterator it)
 
template<typename Real , typename OutputIterator >
OutputIterator DAW_JSON_NS::real2string (Real const &value, OutputIterator out_it)
 
template<std::size_t , typename JsonMember , typename OutputIterator , typename Value , typename VisitedMembers , std::enable_if_t< not has_tag_member_v< JsonMember >, std::nullptr_t > = nullptr>
constexpr void DAW_JSON_NS::json_details::tags_to_json_str (bool &, OutputIterator const &, Value const &, VisitedMembers const &)
 
template<std::size_t pos, typename JsonMember , typename OutputIterator , typename Value , typename VisitedMembers , std::enable_if_t< has_tag_member_v< JsonMember >, std::nullptr_t > = nullptr>
constexpr void DAW_JSON_NS::json_details::tags_to_json_str (bool &is_first, OutputIterator it, Value const &v, VisitedMembers &visited_members)
 
template<size_t TupleIdx, typename JsonMember , typename OutputIterator , typename... Args>
constexpr void DAW_JSON_NS::json_details::to_json_ordered_str (std::size_t &array_idx, OutputIterator &it, std::tuple< Args... > const &tp)
 
template<std::size_t pos, typename JsonMember , typename OutputIterator , typename... Args, typename Value , typename Visited >
constexpr void DAW_JSON_NS::json_details::to_json_str (bool &is_first, OutputIterator &it, std::tuple< Args... > const &tp, Value const &, Visited &visited_members)
 
template<typename Char >
constexpr char DAW_JSON_NS::json_details::to_nibble_char (Char c)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Array >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Bool >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Class >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Custom >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Date >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::KeyValue >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::KeyValueArray >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename Optional >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Null >, OutputIterator it, Optional const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Null >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Real >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Signed >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::StringEscaped >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::StringRaw >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Unknown >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Unsigned >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::Variant >, OutputIterator it, parse_to_t const &value)
 
template<typename JsonMember , typename OutputIterator , typename parse_to_t >
constexpr OutputIterator DAW_JSON_NS::json_details::to_string (ParseTag< JsonParseTypes::VariantTagged >, OutputIterator it, parse_to_t const &value)
 
template<typename T >
auto DAW_JSON_NS::json_details::to_strings::to_string (std::optional< T > const &v) -> decltype(to_string(*v))
 
template<typename T >
auto DAW_JSON_NS::json_details::to_strings::to_string_test::to_string_test (T &&v) -> decltype(to_string(DAW_FWD(v)))
 
template<std::size_t idx, typename JsonMembers , typename OutputIterator , typename parse_to_t >
constexpr void DAW_JSON_NS::json_details::to_variant_string (OutputIterator &it, parse_to_t const &value)
 
template<typename OutputIterator >
constexpr void DAW_JSON_NS::json_details::utf32_to_utf8 (std::uint32_t cp, OutputIterator &it)
 

Variables

constexpr auto DAW_JSON_NS::json_details::digits100
 
template<typename JsonMember >
constexpr bool DAW_JSON_NS::json_details::has_tag_member_v
 
template<typename T >
constexpr bool DAW_JSON_NS::json_details::to_strings::has_to_string_v = has_to_string<T>::value
 
template<typename Optional >
constexpr bool DAW_JSON_NS::json_details::is_valid_optional_v
 

Variable Documentation

◆ literal_as_string

constexpr LiteralAsStringOpt literal_as_string
staticconstexpr
Initial value:
=
LiteralAsStringOpt::Never