123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // Copyright (c) 2022 Dmitry Arkhipov ([email protected])
- //
- // 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_SET_POINTER_OPTIONS_HPP
- #define BOOST_JSON_SET_POINTER_OPTIONS_HPP
- #include <boost/json/detail/config.hpp>
- namespace boost {
- namespace json {
- /** Options for @ref value::set_at_pointer
- *
- * This structure is used for controlling behavior of
- * @ref value::set_at_pointer regarding creation of intermediate elements.
- */
- struct set_pointer_options
- {
- /** Whether to create arrays
- The option controls whether arrays are created when a pointer token is
- a number or a past-the-end marker.
- */
- bool create_arrays = true;
- /** Whether to create objects
- The option controls whether objects are created for valid pointer
- tokens.
- */
- bool create_objects = true;
- /** Whether to replace non-null scalars
- If the option is `true` any non-object, non-array value can be replaced
- by either an @ref object or a @ref array. If it's `false`, only `null`
- values can be replaced.
- */
- bool replace_any_scalar = false;
- /** Maximum amount of elements added per one pointer token
- When addressing @ref array elements the number represented by pointer
- token can exceed the size of the array. In that case several elements
- may be created to satisfy the request. This option limits the amount of
- elements that can be added per one pointer token. This can be
- important, because in general such operations can be dangerous, since a
- relatively small string `"/18446744073709551616"` can request all of
- the machine's memory. For that reason the default value for this option
- is 1, that is no more than 1 element can be added per one pointer
- token.
- */
- std::size_t max_created_elements = 1;
- };
- } // namespace json
- } // namespace boost
- #endif // BOOST_JSON_SET_POINTER_OPTIONS_HPP
|