DAW JSON Link
Loading...
Searching...
No Matches
daw_json_parse_options.h
Go to the documentation of this file.
1// Copyright (c) Darrell Wright
2//
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
5//
6// Official repository: https://github.com/beached/daw_json_link
7//
8
9#pragma once
10
12
13namespace daw::json {
14 inline namespace DAW_JSON_VER {
15 namespace options {
18 inline namespace parser_options {
26 enum class ExecModeTypes : unsigned {
28 default_mode,
30 compile_time,
33 runtime,
35 simd
36 }; // 2bits
37
45 enum class ZeroTerminatedString : unsigned {
48 no,
50 yes
51 }; // 1bit
52
53 enum class AllowStringMutation : unsigned {
55 no,
58 yes
59 }; // 1 bit
60
68 enum class PolicyCommentTypes : unsigned {
70 none,
72 cpp,
74 hash
75 }; // 2bits
76
82 enum class CheckedParseMode : unsigned { yes, no }; // 1bit
83
90 enum class MinifiedDocument : unsigned { no, yes }; // 1 bit
91
100 enum class AllowEscapedNames : unsigned { no, yes }; // 1bit
101
110 enum class IEEE754Precise : unsigned { no, yes }; // 1bit
111
120 enum class ForceFullNameCheck : unsigned { no, yes }; // 1bit
121
129 enum class UseExactMappingsByDefault : unsigned { no, yes }; // 1bit
130
137 enum class MustVerifyEndOfDataIsValid : unsigned { no, yes };
138
144 enum class ExpectLongNames : unsigned { no, yes };
145
153
154 enum class [[deprecated(
155 "This is not used" )]] TemporarilyMutateBuffer : unsigned {
156 no,
157 yes
158 }; // 1bit
159
166 enum class ExcludeSpecialEscapes : unsigned { no, yes }; // 1bit
167 } // namespace parser_options
168 } // namespace options
169 } // namespace DAW_JSON_VER
170} // namespace daw::json
ZeroTerminatedString
Input is a zero terminated string. If this cannot be detected, you can specify it here....
CheckedParseMode
Enable all structure, buffer, and type checking. The default is yes, but no still does some checking ...
ExcludeSpecialEscapes
Exclude characters under 0x20 that are not explicitly allowed.
ForceFullNameCheck
If the hashes of all members being looked are unique, the lookup of names as they are found in the do...
PolicyCommentTypes
Allow comments in JSON. The supported modes are none, C++ style comments, and # hash style comments....
AllowEscapedNames
Allow the escape character '\' in names. This forces a slower parser and is generally not needed....
MinifiedDocument
When document is minified, it is assumed that there is no whitespace in the document....
TemporarilyMutateBuffer
When enabled, the parser can temporarily set a character to the desired token. This allows for safe s...
MustVerifyEndOfDataIsValid
Continue checking that the data is whitespace or empty after the end of top level object is parsed fr...
IEEE754Precise
Use precise IEEE754 parsing of real numbers. The default is no, and results is much faster parsing wi...
ExecModeTypes
Allow for different optimizations. Currently only the compile_time path is fully supported....
UseExactMappingsByDefault
Set the default parser policy to require all JSON members in the parsed object be mapped....
Customization point traits.
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.
Definition version.h:20