DAW JSON Link
Loading...
Searching...
No Matches
Namespaces | Typedefs | Enumerations | Functions | Variables
daw_json_type_options.h File Reference
#include "daw/json/impl/version.h"
#include "daw/json/impl/daw_json_enums.h"
#include "daw/json/impl/daw_json_option_bits.h"

Go to the source code of this file.

Namespaces

namespace  daw
 
namespace  daw::json
 string_writer grows its string with resize_and_overwrite, leaving the new bytes uninitialized, when the standard library has it. That skips zero filling memory that is overwritten right away, but the bytes past what was written are never initialized, which resize_and_overwrite's precondition does not allow. Define DAW_JSON_NO_LESS_SAFE_STRING_WRITER to grow with resize( ) instead
 
namespace  daw::json::anonymous_namespace{daw_json_type_options.h}
 
namespace  daw::json::anonymous_namespace{daw_json_type_options.h}::options
 

Typedefs

using daw::json::anonymous_namespace{daw_json_type_options.h}::bool_opts_t = json_details::JsonOptionList< options::LiteralAsStringOpt >
 
using daw::json::anonymous_namespace{daw_json_type_options.h}::fp_opts_t = json_details::JsonOptionList< options::LiteralAsStringOpt, options::JsonRangeCheck, options::JsonNumberErrors >
 
using daw::json::anonymous_namespace{daw_json_type_options.h}::json_custom_opts_t = json_details::JsonOptionList< options::JsonCustomTypes >
 
using daw::json::anonymous_namespace{daw_json_type_options.h}::number_opts_t = json_details::JsonOptionList< options::LiteralAsStringOpt, options::JsonRangeCheck, options::JsonNumberErrors, options::FPOutputFormat >
 
using daw::json::anonymous_namespace{daw_json_type_options.h}::string_opts_t = json_details::JsonOptionList< options::EightBitModes, options::EscapeValidUTF8 >
 
using daw::json::anonymous_namespace{daw_json_type_options.h}::string_raw_opts_t = json_details::JsonOptionList< options::EightBitModes, options::AllowEscapeCharacter >
 

Enumerations

enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::AllowEscapeCharacter : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::Allow , daw::json::anonymous_namespace{daw_json_type_options.h}::options::NoEscapedDblQuote }
 In RAW String processing, if we know that there are no escaped double quotes " we can stop at the first double quote. This allows faster string parsing. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::EightBitModes : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::DisallowHigh , daw::json::anonymous_namespace{daw_json_type_options.h}::options::AllowFull }
 Controls whether string bytes with the high bit set are allowed. When serializing json_string mappings, DisallowHigh escapes such bytes; json_string_raw serialization rejects them instead. When parsing json_string mappings, DisallowHigh rejects them. json_string_raw parsing preserves the input bytes and does not inspect this option. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::EscapeValidUTF8 : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::Validate , daw::json::anonymous_namespace{daw_json_type_options.h}::options::AssumeValid }
 Controls json_string serialization checking. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::FPOutputFormat : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::Auto , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Scientific , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Decimal , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Minimum }
 Control the floating point output format. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::JsonCustomTypes : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::String , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Literal , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Any }
 Custom JSON types can be Strings, unquoted Literals, or a mix. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::JsonNumberErrors : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::None , daw::json::anonymous_namespace{daw_json_type_options.h}::options::AllowNaN , daw::json::anonymous_namespace{daw_json_type_options.h}::options::AllowInf , daw::json::anonymous_namespace{daw_json_type_options.h}::options::AllowNanInf }
 When outputting floating point numbers, control whether Inf/NaN values can be parsed/serialized. This requires that the LiteralAsString option be set to Maybe or Always. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::JsonRangeCheck : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::Never , daw::json::anonymous_namespace{daw_json_type_options.h}::options::CheckForNarrowing }
 Control if narrowing checks are performed. More...
 
enum class  daw::json::anonymous_namespace{daw_json_type_options.h}::options::LiteralAsStringOpt : unsigned { daw::json::anonymous_namespace{daw_json_type_options.h}::options::Never , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Maybe , daw::json::anonymous_namespace{daw_json_type_options.h}::options::Always }
 Controls the ability to parse numbers that are encoded as strings. More...
 

Functions

template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::bool_opt (Options... options)
 
template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::fp_opt (Options... options)
 
template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::json_custom_opt (Options... options)
 
template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::number_opt (Options... options)
 
template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::string_opt (Options... options)
 
template<typename... Options>
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::options::string_raw_opt (Options... options)
 

Variables

constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::bool_opts = bool_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::bool_opts_def
 
constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::fp_opts = fp_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::fp_opts_def
 
constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::json_custom_opts = json_custom_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::json_custom_opts_def
 
constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::number_opts = number_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::number_opts_def
 
constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::string_opts = string_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::string_opts_def
 
constexpr auto daw::json::anonymous_namespace{daw_json_type_options.h}::string_raw_opts = string_raw_opts_t{ }
 
constexpr json_options_t daw::json::anonymous_namespace{daw_json_type_options.h}::string_raw_opts_def