DAW JSON Link
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions | Variables
daw_json_parse_policy.h File Reference
#include "daw/json/impl/version.h"
#include "daw/json/impl/daw_json_allocator_wrapper.h"
#include "daw/json/impl/daw_json_assert.h"
#include "daw/json/impl/daw_json_parse_common.h"
#include "daw/json/impl/daw_json_parse_options_impl.h"
#include "daw/json/impl/daw_json_parse_policy_cpp_comments.h"
#include "daw/json/impl/daw_json_parse_policy_hash_comments.h"
#include "daw/json/impl/daw_json_parse_policy_no_comments.h"
#include "daw/json/impl/daw_json_parse_policy_policy_details.h"
#include "daw/json/impl/daw_json_skip_class_simd.h"
#include "daw/json/impl/daw_json_string_util.h"
#include <daw/cpp_17.h>
#include <daw/daw_attributes.h>
#include <daw/daw_consteval.h>
#include <daw/daw_likely.h>
#include <daw/daw_not_null.h>
#include <daw/daw_rw_ref.h>
#include <daw/daw_traits.h>
#include <cassert>
#include <cstddef>
#include <iterator>
#include <type_traits>

Go to the source code of this file.

Classes

struct  daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy< PolicyFlags, Allocator >
 Handles the bounds and policy items for parsing execution and comments. More...
 
struct  daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy< PolicyFlags, Allocator >::class_pos_t
 
struct  daw::json::anonymous_namespace{daw_json_parse_policy.h}::DefaultParsePolicy
 
struct  daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::parse_flags_t< PolicyFlags >
 
struct  daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::parse_flags_t<>
 

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_parse_policy.h}
 
namespace  daw::json::anonymous_namespace{daw_json_parse_policy.h}::options
 
namespace  daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::details
 

Macros

#define DAW_JSON_CONFORMANCE_FLAGS
 

Typedefs

template<json_options_t PolicyFlags = json_details::default_policy_flag, typename Allocator = json_details::NoAllocator>
using daw::json::anonymous_namespace{daw_json_parse_policy.h}::GetParsePolicy = daw::conditional_t<(PolicyFlags==json_details::default_policy_flag and std::is_same_v< Allocator, json_details::NoAllocator >), DefaultParsePolicy, BasicParsePolicy< PolicyFlags, Allocator > >
 
template<typename ParsePolicy >
using daw::json::anonymous_namespace{daw_json_parse_policy.h}::TryDefaultParsePolicy = daw::conditional_t< ParsePolicy::is_default_parse_policy, DefaultParsePolicy, ParsePolicy >
 

Functions

 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy () -> BasicParsePolicy<>
 
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char *, char *) -> BasicParsePolicy<>
 
template<typename Allocator >
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char *, char *, Allocator const &) -> BasicParsePolicy< json_details::default_policy_flag, Allocator >
 
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char *, char *, char *, char *) -> BasicParsePolicy<>
 
template<typename Allocator >
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char *, char *, char *, char *, Allocator const &) -> BasicParsePolicy< json_details::default_policy_flag, Allocator >
 
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char const *, char const *) -> BasicParsePolicy<>
 
template<typename Allocator >
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char const *, char const *, Allocator const &) -> BasicParsePolicy< json_details::default_policy_flag, Allocator >
 
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char const *, char const *, char const *, char const *) -> BasicParsePolicy<>
 
template<typename Allocator >
 daw::json::anonymous_namespace{daw_json_parse_policy.h}::BasicParsePolicy (char const *, char const *, char const *, char const *, Allocator const &) -> BasicParsePolicy< json_details::default_policy_flag, Allocator >
 
template<auto... PolicyFlags>
std::true_type daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::details::is_policy_flag (parse_flags_t< PolicyFlags... >)
 
template<typename... Ts>
std::false_type daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::details::is_policy_flag (Ts...)
 
template<auto... PolicyFlags>
DAW_CONSTEVAL auto daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::details::make_parse_flags ()
 

Variables

constexpr auto daw::json::anonymous_namespace{daw_json_parse_policy.h}::ConformancePolicy
 
template<auto... PolicyFlags>
constexpr auto daw::json::anonymous_namespace{daw_json_parse_policy.h}::options::parse_flags
 Specify parse policy flags in to_json calls. See cookbook item parse_options.md.
 

Macro Definition Documentation

◆ DAW_JSON_CONFORMANCE_FLAGS

#define DAW_JSON_CONFORMANCE_FLAGS
Value:
daw::json::options::AllowEscapedNames::yes, \
daw::json::options::MustVerifyEndOfDataIsValid::yes, \
daw::json::options::IEEE754Precise::yes, \
daw::json::options::ExcludeSpecialEscapes::yes

Definition at line 682 of file daw_json_parse_policy.h.