liuxiaolong
2021-07-20 58d904a328c0d849769b483e901a0be9426b8209
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
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
// Copyright (c) 2020 Krystian Stasiowski (sdkrystian@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_PARSE_HPP
#define BOOST_JSON_PARSE_HPP
 
#include <boost/json/detail/config.hpp>
#include <boost/json/error.hpp>
#include <boost/json/parse_options.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/string_view.hpp>
#include <boost/json/value.hpp>
 
BOOST_JSON_NS_BEGIN
 
/** Return parsed JSON as a @ref value.
 
    This function parses an entire string in one
    step to produce a complete JSON object, returned
    as a @ref value. If the buffer does not contain a
    complete serialized JSON, an error occurs. In this
    case the returned value will be null, using the
    default memory resource.
 
    @par Complexity
    Linear in `s.size()`.
 
    @par Exception Safety
    Strong guarantee.
    Calls to `memory_resource::allocate` may throw.
 
    @return A value representing the parsed JSON,
    or a null if any error occurred.
 
    @param s The string to parse.
 
    @param ec Set to the error, if any occurred.
 
    @param sp The memory resource that the new value and all
    of its elements will use. If this parameter is omitted,
    the default memory resource is used.
 
    @param opt The options for the parser. If this parameter
    is omitted, the parser will accept only standard JSON.
 
    @see
        @ref parse_options,
        @ref stream_parser.
*/
BOOST_JSON_DECL
value
parse(
    string_view s,
    error_code& ec,
    storage_ptr sp = {},
    parse_options const& opt = {});
 
/** Parse a string of JSON into a @ref value.
 
    This function parses an entire string in one
    step to produce a complete JSON object, returned
    as a @ref value. If the buffer does not contain a
    complete serialized JSON, an exception is thrown.
 
    @par Complexity
    Linear in `s.size()`.
 
    @par Exception Safety
    Strong guarantee.
    Calls to `memory_resource::allocate` may throw.
 
    @return A value representing the parsed
    JSON upon success.
    
    @param s The string to parse.
 
    @param sp The memory resource that the new value and all
    of its elements will use. If this parameter is omitted,
    the default memory resource is used.
 
    @param opt The options for the parser. If this parameter
    is omitted, the parser will accept only standard JSON.
 
    @throw system_error Thrown on failure.
 
    @see
        @ref parse_options,
        @ref stream_parser.
*/
BOOST_JSON_DECL
value
parse(
    string_view s,
    storage_ptr sp = {},
    parse_options const& opt = {});
 
BOOST_JSON_NS_END
 
#endif