DAW JSON Link
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 
11 #include "impl/version.h"
12 
13 namespace daw::json {
14  inline namespace DAW_JSON_VER {
15  namespace options {
18  inline namespace parser_options {
26  enum class ExecModeTypes : unsigned {
28  compile_time,
31  runtime,
33  simd
34  }; // 2bits
35 
43  enum class ZeroTerminatedString : unsigned {
46  no,
48  yes
49  }; // 1bit
50 
58  enum class PolicyCommentTypes : unsigned {
60  none,
62  cpp,
64  hash
65  }; // 2bits
66 
72  enum class CheckedParseMode : unsigned { yes, no }; // 1bit
73 
80  enum class MinifiedDocument : unsigned { no, yes }; // 1 bit
81 
90  enum class AllowEscapedNames : unsigned { no, yes }; // 1bit
91 
100  enum class IEEE754Precise : unsigned { no, yes }; // 1bit
101 
110  enum class ForceFullNameCheck : unsigned { no, yes }; // 1bit
111 
119  enum class UseExactMappingsByDefault : unsigned { no, yes }; // 1bit
120 
127  enum class MustVerifyEndOfDataIsValid : unsigned { no, yes };
128 
134  enum class ExpectLongNames : unsigned { no, yes };
135 
143 
144  enum class [[deprecated(
145  "This is not used" )]] TemporarilyMutateBuffer : unsigned{
146  no, yes }; // 1bit
147 
154  enum class ExcludeSpecialEscapes : unsigned { no, yes }; // 1bit
155  } // namespace parser_options
156  } // namespace options
157  } // namespace DAW_JSON_VER
158 } // 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:25