1 |
#pragma once |
2 |
|
3 |
#include "forwards.h" |
4 |
|
5 |
namespace Json |
6 |
{ |
7 |
/** \brief Configuration passed to reader and writer. |
8 |
* This configuration object can be used to force the Reader or Writer |
9 |
* to behave in a standard conforming way. |
10 |
*/ |
11 |
class JSON_API Features |
12 |
{ |
13 |
public: |
14 |
/** \brief A configuration that allows all features and assumes all strings are UTF-8. |
15 |
* - C & C++ comments are allowed |
16 |
* - Root object can be any JSON value |
17 |
* - Assumes Value strings are encoded in UTF-8 |
18 |
*/ |
19 |
static Features all (); |
20 |
|
21 |
/** \brief A configuration that is strictly compatible with the JSON specification. |
22 |
* - Comments are forbidden. |
23 |
* - Root object must be either an array or an object value. |
24 |
* - Assumes Value strings are encoded in UTF-8 |
25 |
*/ |
26 |
static Features strictMode (); |
27 |
|
28 |
/** \brief Initialize the configuration like JsonConfig::allFeatures; |
29 |
*/ |
30 |
Features (); |
31 |
|
32 |
/* / \c true if comments are allowed. Default: \c true. */ |
33 |
bool allowComments_; |
34 |
|
35 |
/* / \c true if root must be either an array or an object value. Default: \c false. */ |
36 |
bool strictRoot_; |
37 |
}; |
38 |
} /* namespace Json */ |