Blame view

3rdparty/boost_1_81_0/boost/json/error.hpp 3.08 KB
63e88f80   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
  //
  // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
  //
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  //
  // Official repository: https://github.com/boostorg/json
  //
  
  #ifndef BOOST_JSON_ERROR_HPP
  #define BOOST_JSON_ERROR_HPP
  
  #include <boost/json/detail/config.hpp>
  #include <boost/json/system_error.hpp>
  
  BOOST_JSON_NS_BEGIN
  
  /** Error codes returned by JSON operations
  
  */
  enum class error
  {
      //
      // parse errors
      //
  
      /// syntax error
      syntax = 1,
  
      /// extra data
      extra_data,
  
      /// incomplete JSON
      incomplete,
  
      /// exponent too large
      exponent_overflow,
  
      /// too deep
      too_deep,
  
      /// illegal leading surrogate
      illegal_leading_surrogate,
  
      /// illegal trailing surrogate
      illegal_trailing_surrogate,
  
      /// expected hex digit
      expected_hex_digit,
  
      /// expected utf16 escape
      expected_utf16_escape,
  
      /// An object contains too many elements
      object_too_large,
  
      /// An array contains too many elements
      array_too_large,
  
      /// A key is too large
      key_too_large,
  
      /// A string is too large
      string_too_large,
  
      /// error occured when trying to read input
      input_error,
  
      //
      // generic errors
      //
  
      /// An exception was thrown during operation
      exception,
  
      /// test failure
      test_failure,
  
      //
      // JSON Pointer errors
      //
  
      /// missing slash character before token reference
      missing_slash,
  
      /// invalid escape sequence
      invalid_escape,
  
      /// token should be a number but cannot be parsed as such
      token_not_number,
  
      /// current value is neither an object nor an array
      value_is_scalar,
  
      /// current value does not contain referenced value
      not_found,
  
      /// token cannot be represented by std::size_t
      token_overflow,
  
      /// past-the-end index is not supported
      past_the_end,
  
      //
      // Conversion errors
      //
  
      /// JSON number was expected during conversion
      not_number,
  
      /// number cast is not exact
      not_exact,
  
      /// JSON null was expected during conversion
      not_null,
  
      /// JSON bool was expected during conversion
      not_bool,
  
      /// JSON array was expected during conversion
      not_array,
  
      /// JSON object was expected during conversion
      not_object,
  
      /// JSON string was expected during conversion
      not_string,
  
      /// JSON array has size incompatible with target
      size_mismatch,
  
      /// none of the possible conversions were successful
      exhausted_variants,
  
      /// the key does not correspond to a known name
      unknown_name,
  };
  
  /** Error conditions corresponding to JSON errors
  */
  enum class condition
  {
      /// A parser-related error
      parse_error = 1,
  
      /// An error related to parsing JSON pointer string
      pointer_parse_error,
  
      /// An error related to applying JSON pointer string to a value
      pointer_use_error,
  
      /// A conversion error
      conversion_error,
  
      /// A generic error
      generic_error,
  };
  
  BOOST_JSON_NS_END
  
  #include <boost/json/impl/error.hpp>
  
  #endif