jsoncons 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ext/jsoncons/extconf.rb +43 -0
- data/ext/jsoncons/jsoncons.cpp +161 -0
- data/ext/jsoncons/jsoncons.h +10 -0
- data/jsoncons.gemspec +44 -0
- data/lib/jsoncons/jsoncons/examples/input/address-book.json +13 -0
- data/lib/jsoncons/jsoncons/examples/input/books.json +28 -0
- data/lib/jsoncons/jsoncons/examples/input/countries.json +7 -0
- data/lib/jsoncons/jsoncons/examples/input/employees.json +30 -0
- data/lib/jsoncons/jsoncons/examples/input/jsonschema/name.json +15 -0
- data/lib/jsoncons/jsoncons/examples/input/multiple-json-objects.json +3 -0
- data/lib/jsoncons/jsoncons/examples/input/sales.csv +6 -0
- data/lib/jsoncons/jsoncons/examples/input/store.json +28 -0
- data/lib/jsoncons/jsoncons/examples/input/tasks.csv +6 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/allocator_holder.hpp +38 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/basic_json.hpp +5905 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/bigint.hpp +1611 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/byte_string.hpp +820 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/config/binary_config.hpp +226 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/config/compiler_support.hpp +375 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/config/jsoncons_config.hpp +309 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/config/version.hpp +40 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/conv_error.hpp +218 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/decode_json.hpp +209 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/decode_traits.hpp +651 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/endian.hpp +44 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/grisu3.hpp +312 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/optional.hpp +483 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/parse_number.hpp +1133 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/span.hpp +188 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/string_view.hpp +537 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/string_wrapper.hpp +370 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/detail/write_number.hpp +567 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/encode_json.hpp +315 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/encode_traits.hpp +378 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json.hpp +18 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_array.hpp +324 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_content_handler.hpp +12 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_cursor.hpp +448 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_decoder.hpp +420 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_encoder.hpp +1587 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_error.hpp +156 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_exception.hpp +241 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_filter.hpp +653 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_fwd.hpp +23 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_object.hpp +1772 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_options.hpp +862 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_parser.hpp +2900 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_reader.hpp +731 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_traits_macros.hpp +1072 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_traits_macros_deprecated.hpp +144 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_type.hpp +206 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_type_traits.hpp +1830 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_visitor.hpp +1560 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/json_visitor2.hpp +2079 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/pretty_print.hpp +89 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/ser_context.hpp +62 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/sink.hpp +289 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/source.hpp +777 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/source_adaptor.hpp +148 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/staj2_cursor.hpp +1189 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/staj_cursor.hpp +1254 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/staj_iterator.hpp +449 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/tag_type.hpp +245 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/text_source_adaptor.hpp +144 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/traits_extension.hpp +884 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/typed_array_view.hpp +250 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/unicode_traits.hpp +1330 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/uri.hpp +635 -0
- data/lib/jsoncons/jsoncons/include/jsoncons/value_converter.hpp +340 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson.hpp +23 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +320 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +865 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +585 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_error.hpp +103 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_oid.hpp +245 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_options.hpp +75 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp +645 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_reader.hpp +92 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/bson_type.hpp +44 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +201 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +144 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +26 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +351 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_cursor2.hpp +265 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp +93 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +1766 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_error.hpp +105 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp +113 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp +1942 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/cbor_reader.hpp +116 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp +203 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp +151 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv.hpp +17 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +358 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +954 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_error.hpp +85 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +973 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +2099 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp +348 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/csv_serializer.hpp +12 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +208 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp +122 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +5215 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +215 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +579 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +121 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/expression.hpp +3329 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +432 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +445 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +115 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +13 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +240 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +2612 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +1322 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +1577 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +119 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/format_validator.hpp +968 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/json_validator.hpp +120 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +13 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp +105 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_version.hpp +18 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/keyword_validator.hpp +1745 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/keyword_validator_factory.hpp +556 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/schema_draft7.hpp +198 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/schema_location.hpp +200 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/schema_version.hpp +35 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/jsonschema/subschema.hpp +144 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +103 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp +202 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp +142 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +24 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp +343 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor2.hpp +259 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp +753 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_error.hpp +94 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp +74 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_parser.hpp +748 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_reader.hpp +116 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/msgpack/msgpack_type.hpp +63 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp +201 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp +142 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +23 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp +307 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp +502 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_error.hpp +100 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp +87 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_parser.hpp +880 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_reader.hpp +92 -0
- data/lib/jsoncons/jsoncons/include/jsoncons_ext/ubjson/ubjson_type.hpp +43 -0
- data/lib/jsoncons/version.rb +5 -0
- data/lib/jsoncons.rb +33 -0
- data/test/jsoncons_test.rb +108 -0
- data/test/test_helper.rb +7 -0
- metadata +268 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/// Copyright 2018 Daniel Parker
|
|
2
|
+
// Distributed under the Boost license, Version 1.0.
|
|
3
|
+
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
4
|
+
|
|
5
|
+
// See https://github.com/danielaparker/jsoncons for latest version
|
|
6
|
+
|
|
7
|
+
#ifndef JSONCONS_CBOR_CBOR_ERROR_HPP
|
|
8
|
+
#define JSONCONS_CBOR_CBOR_ERROR_HPP
|
|
9
|
+
|
|
10
|
+
#include <system_error>
|
|
11
|
+
#include <jsoncons/config/jsoncons_config.hpp>
|
|
12
|
+
#include <jsoncons/json_exception.hpp> // jsoncons::ser_error
|
|
13
|
+
|
|
14
|
+
namespace jsoncons { namespace cbor {
|
|
15
|
+
|
|
16
|
+
enum class cbor_errc
|
|
17
|
+
{
|
|
18
|
+
success = 0,
|
|
19
|
+
unexpected_eof,
|
|
20
|
+
source_error,
|
|
21
|
+
invalid_decimal_fraction,
|
|
22
|
+
invalid_bigfloat,
|
|
23
|
+
invalid_utf8_text_string,
|
|
24
|
+
too_many_items,
|
|
25
|
+
too_few_items,
|
|
26
|
+
number_too_large,
|
|
27
|
+
stringref_too_large,
|
|
28
|
+
max_nesting_depth_exceeded,
|
|
29
|
+
unknown_type,
|
|
30
|
+
illegal_chunked_string
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
class cbor_error_category_impl
|
|
34
|
+
: public std::error_category
|
|
35
|
+
{
|
|
36
|
+
public:
|
|
37
|
+
const char* name() const noexcept override
|
|
38
|
+
{
|
|
39
|
+
return "jsoncons/cbor";
|
|
40
|
+
}
|
|
41
|
+
std::string message(int ev) const override
|
|
42
|
+
{
|
|
43
|
+
switch (static_cast<cbor_errc>(ev))
|
|
44
|
+
{
|
|
45
|
+
case cbor_errc::unexpected_eof:
|
|
46
|
+
return "Unexpected end of file";
|
|
47
|
+
case cbor_errc::source_error:
|
|
48
|
+
return "Source error";
|
|
49
|
+
case cbor_errc::invalid_decimal_fraction:
|
|
50
|
+
return "Invalid decimal fraction";
|
|
51
|
+
case cbor_errc::invalid_bigfloat:
|
|
52
|
+
return "Invalid bigfloat";
|
|
53
|
+
case cbor_errc::invalid_utf8_text_string:
|
|
54
|
+
return "Illegal UTF-8 encoding in text string";
|
|
55
|
+
case cbor_errc::too_many_items:
|
|
56
|
+
return "Too many items were added to a CBOR map or array of known length";
|
|
57
|
+
case cbor_errc::too_few_items:
|
|
58
|
+
return "Too few items were added to a CBOR map or array of known length";
|
|
59
|
+
case cbor_errc::number_too_large:
|
|
60
|
+
return "Number exceeds implementation limits";
|
|
61
|
+
case cbor_errc::stringref_too_large:
|
|
62
|
+
return "stringref exceeds stringref map size";
|
|
63
|
+
case cbor_errc::max_nesting_depth_exceeded:
|
|
64
|
+
return "Data item nesting exceeds limit in options";
|
|
65
|
+
case cbor_errc::unknown_type:
|
|
66
|
+
return "An unknown type was found in the stream";
|
|
67
|
+
case cbor_errc::illegal_chunked_string:
|
|
68
|
+
return "An illegal type was found while parsing an indefinite length string";
|
|
69
|
+
default:
|
|
70
|
+
return "Unknown CBOR parser error";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
inline
|
|
76
|
+
const std::error_category& cbor_error_category()
|
|
77
|
+
{
|
|
78
|
+
static cbor_error_category_impl instance;
|
|
79
|
+
return instance;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
inline
|
|
83
|
+
std::error_code make_error_code(cbor_errc e)
|
|
84
|
+
{
|
|
85
|
+
return std::error_code(static_cast<int>(e),cbor_error_category());
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
#if !defined(JSONCONS_NO_DEPRECATED)
|
|
90
|
+
|
|
91
|
+
JSONCONS_DEPRECATED_MSG("Instead, use ser_error") typedef ser_error cbor_error;
|
|
92
|
+
JSONCONS_DEPRECATED_MSG("Instead, use ser_error") typedef ser_error cbor_decode_error;
|
|
93
|
+
JSONCONS_DEPRECATED_MSG("Instead, use ser_error") typedef ser_error cbor_reader_errc;
|
|
94
|
+
#endif
|
|
95
|
+
|
|
96
|
+
}}
|
|
97
|
+
|
|
98
|
+
namespace std {
|
|
99
|
+
template<>
|
|
100
|
+
struct is_error_code_enum<jsoncons::cbor::cbor_errc> : public true_type
|
|
101
|
+
{
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#endif
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Copyright 2019 Daniel Parker
|
|
2
|
+
// Distributed under the Boost license, Version 1.0.
|
|
3
|
+
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
4
|
+
|
|
5
|
+
// See https://github.com/danielaparker/jsoncons for latest version
|
|
6
|
+
|
|
7
|
+
#ifndef JSONCONS_CBOR_CBOR_OPTIONS_HPP
|
|
8
|
+
#define JSONCONS_CBOR_CBOR_OPTIONS_HPP
|
|
9
|
+
|
|
10
|
+
#include <string>
|
|
11
|
+
#include <limits> // std::numeric_limits
|
|
12
|
+
#include <cwchar>
|
|
13
|
+
#include <jsoncons/json_exception.hpp>
|
|
14
|
+
#include <jsoncons_ext/cbor/cbor_detail.hpp>
|
|
15
|
+
|
|
16
|
+
namespace jsoncons { namespace cbor {
|
|
17
|
+
|
|
18
|
+
class cbor_options;
|
|
19
|
+
|
|
20
|
+
class cbor_options_common
|
|
21
|
+
{
|
|
22
|
+
friend class cbor_options;
|
|
23
|
+
|
|
24
|
+
int max_nesting_depth_;
|
|
25
|
+
protected:
|
|
26
|
+
virtual ~cbor_options_common() = default;
|
|
27
|
+
|
|
28
|
+
cbor_options_common()
|
|
29
|
+
: max_nesting_depth_(1024)
|
|
30
|
+
{
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
cbor_options_common(const cbor_options_common&) = default;
|
|
34
|
+
cbor_options_common& operator=(const cbor_options_common&) = default;
|
|
35
|
+
cbor_options_common(cbor_options_common&&) = default;
|
|
36
|
+
cbor_options_common& operator=(cbor_options_common&&) = default;
|
|
37
|
+
public:
|
|
38
|
+
int max_nesting_depth() const
|
|
39
|
+
{
|
|
40
|
+
return max_nesting_depth_;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
class cbor_decode_options : public virtual cbor_options_common
|
|
45
|
+
{
|
|
46
|
+
friend class cbor_options;
|
|
47
|
+
public:
|
|
48
|
+
cbor_decode_options()
|
|
49
|
+
{
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
class cbor_encode_options : public virtual cbor_options_common
|
|
54
|
+
{
|
|
55
|
+
friend class cbor_options;
|
|
56
|
+
|
|
57
|
+
bool use_stringref_;
|
|
58
|
+
bool use_typed_arrays_;
|
|
59
|
+
public:
|
|
60
|
+
cbor_encode_options()
|
|
61
|
+
: use_stringref_(false),
|
|
62
|
+
use_typed_arrays_(false)
|
|
63
|
+
{
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
bool pack_strings() const
|
|
67
|
+
{
|
|
68
|
+
return use_stringref_;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
bool use_typed_arrays() const
|
|
72
|
+
{
|
|
73
|
+
return use_typed_arrays_;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
class cbor_options final : public cbor_decode_options, public cbor_encode_options
|
|
78
|
+
{
|
|
79
|
+
public:
|
|
80
|
+
using cbor_options_common::max_nesting_depth;
|
|
81
|
+
using cbor_encode_options::pack_strings;
|
|
82
|
+
using cbor_encode_options::use_typed_arrays;
|
|
83
|
+
|
|
84
|
+
cbor_options& max_nesting_depth(int value)
|
|
85
|
+
{
|
|
86
|
+
this->max_nesting_depth_ = value;
|
|
87
|
+
return *this;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
cbor_options& pack_strings(bool value)
|
|
91
|
+
{
|
|
92
|
+
this->use_stringref_ = value;
|
|
93
|
+
return *this;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
cbor_options& use_typed_arrays(bool value)
|
|
97
|
+
{
|
|
98
|
+
this->use_typed_arrays_ = value;
|
|
99
|
+
return *this;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#if !defined(JSONCONS_NO_DEPRECATED)
|
|
103
|
+
JSONCONS_DEPRECATED_MSG("Instead, use use_typed_arrays(bool)")
|
|
104
|
+
cbor_options& enable_typed_arrays(bool value)
|
|
105
|
+
{
|
|
106
|
+
this->use_typed_arrays_ = value;
|
|
107
|
+
return *this;
|
|
108
|
+
}
|
|
109
|
+
#endif
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
}}
|
|
113
|
+
#endif
|