isotree 0.2.2 → 0.3.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.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/LICENSE.txt +2 -2
  4. data/README.md +32 -14
  5. data/ext/isotree/ext.cpp +144 -31
  6. data/ext/isotree/extconf.rb +7 -7
  7. data/lib/isotree/isolation_forest.rb +110 -30
  8. data/lib/isotree/version.rb +1 -1
  9. data/vendor/isotree/LICENSE +1 -1
  10. data/vendor/isotree/README.md +165 -27
  11. data/vendor/isotree/include/isotree.hpp +2111 -0
  12. data/vendor/isotree/include/isotree_oop.hpp +394 -0
  13. data/vendor/isotree/inst/COPYRIGHTS +62 -0
  14. data/vendor/isotree/src/RcppExports.cpp +525 -52
  15. data/vendor/isotree/src/Rwrapper.cpp +1931 -268
  16. data/vendor/isotree/src/c_interface.cpp +953 -0
  17. data/vendor/isotree/src/crit.hpp +4232 -0
  18. data/vendor/isotree/src/dist.hpp +1886 -0
  19. data/vendor/isotree/src/exp_depth_table.hpp +134 -0
  20. data/vendor/isotree/src/extended.hpp +1444 -0
  21. data/vendor/isotree/src/external_facing_generic.hpp +399 -0
  22. data/vendor/isotree/src/fit_model.hpp +2401 -0
  23. data/vendor/isotree/src/{dealloc.cpp → headers_joined.hpp} +38 -22
  24. data/vendor/isotree/src/helpers_iforest.hpp +813 -0
  25. data/vendor/isotree/src/{impute.cpp → impute.hpp} +353 -122
  26. data/vendor/isotree/src/indexer.cpp +515 -0
  27. data/vendor/isotree/src/instantiate_template_headers.cpp +118 -0
  28. data/vendor/isotree/src/instantiate_template_headers.hpp +240 -0
  29. data/vendor/isotree/src/isoforest.hpp +1659 -0
  30. data/vendor/isotree/src/isotree.hpp +1804 -392
  31. data/vendor/isotree/src/isotree_exportable.hpp +99 -0
  32. data/vendor/isotree/src/merge_models.cpp +159 -16
  33. data/vendor/isotree/src/mult.hpp +1321 -0
  34. data/vendor/isotree/src/oop_interface.cpp +842 -0
  35. data/vendor/isotree/src/oop_interface.hpp +278 -0
  36. data/vendor/isotree/src/other_helpers.hpp +219 -0
  37. data/vendor/isotree/src/predict.hpp +1932 -0
  38. data/vendor/isotree/src/python_helpers.hpp +134 -0
  39. data/vendor/isotree/src/ref_indexer.hpp +154 -0
  40. data/vendor/isotree/src/robinmap/LICENSE +21 -0
  41. data/vendor/isotree/src/robinmap/README.md +483 -0
  42. data/vendor/isotree/src/robinmap/include/tsl/robin_growth_policy.h +406 -0
  43. data/vendor/isotree/src/robinmap/include/tsl/robin_hash.h +1620 -0
  44. data/vendor/isotree/src/robinmap/include/tsl/robin_map.h +807 -0
  45. data/vendor/isotree/src/robinmap/include/tsl/robin_set.h +660 -0
  46. data/vendor/isotree/src/serialize.cpp +4300 -139
  47. data/vendor/isotree/src/sql.cpp +141 -59
  48. data/vendor/isotree/src/subset_models.cpp +174 -0
  49. data/vendor/isotree/src/utils.hpp +3808 -0
  50. data/vendor/isotree/src/xoshiro.hpp +467 -0
  51. data/vendor/isotree/src/ziggurat.hpp +405 -0
  52. metadata +38 -104
  53. data/vendor/cereal/LICENSE +0 -24
  54. data/vendor/cereal/README.md +0 -85
  55. data/vendor/cereal/include/cereal/access.hpp +0 -351
  56. data/vendor/cereal/include/cereal/archives/adapters.hpp +0 -163
  57. data/vendor/cereal/include/cereal/archives/binary.hpp +0 -169
  58. data/vendor/cereal/include/cereal/archives/json.hpp +0 -1019
  59. data/vendor/cereal/include/cereal/archives/portable_binary.hpp +0 -334
  60. data/vendor/cereal/include/cereal/archives/xml.hpp +0 -956
  61. data/vendor/cereal/include/cereal/cereal.hpp +0 -1089
  62. data/vendor/cereal/include/cereal/details/helpers.hpp +0 -422
  63. data/vendor/cereal/include/cereal/details/polymorphic_impl.hpp +0 -796
  64. data/vendor/cereal/include/cereal/details/polymorphic_impl_fwd.hpp +0 -65
  65. data/vendor/cereal/include/cereal/details/static_object.hpp +0 -127
  66. data/vendor/cereal/include/cereal/details/traits.hpp +0 -1411
  67. data/vendor/cereal/include/cereal/details/util.hpp +0 -84
  68. data/vendor/cereal/include/cereal/external/base64.hpp +0 -134
  69. data/vendor/cereal/include/cereal/external/rapidjson/allocators.h +0 -284
  70. data/vendor/cereal/include/cereal/external/rapidjson/cursorstreamwrapper.h +0 -78
  71. data/vendor/cereal/include/cereal/external/rapidjson/document.h +0 -2652
  72. data/vendor/cereal/include/cereal/external/rapidjson/encodedstream.h +0 -299
  73. data/vendor/cereal/include/cereal/external/rapidjson/encodings.h +0 -716
  74. data/vendor/cereal/include/cereal/external/rapidjson/error/en.h +0 -74
  75. data/vendor/cereal/include/cereal/external/rapidjson/error/error.h +0 -161
  76. data/vendor/cereal/include/cereal/external/rapidjson/filereadstream.h +0 -99
  77. data/vendor/cereal/include/cereal/external/rapidjson/filewritestream.h +0 -104
  78. data/vendor/cereal/include/cereal/external/rapidjson/fwd.h +0 -151
  79. data/vendor/cereal/include/cereal/external/rapidjson/internal/biginteger.h +0 -290
  80. data/vendor/cereal/include/cereal/external/rapidjson/internal/diyfp.h +0 -271
  81. data/vendor/cereal/include/cereal/external/rapidjson/internal/dtoa.h +0 -245
  82. data/vendor/cereal/include/cereal/external/rapidjson/internal/ieee754.h +0 -78
  83. data/vendor/cereal/include/cereal/external/rapidjson/internal/itoa.h +0 -308
  84. data/vendor/cereal/include/cereal/external/rapidjson/internal/meta.h +0 -186
  85. data/vendor/cereal/include/cereal/external/rapidjson/internal/pow10.h +0 -55
  86. data/vendor/cereal/include/cereal/external/rapidjson/internal/regex.h +0 -740
  87. data/vendor/cereal/include/cereal/external/rapidjson/internal/stack.h +0 -232
  88. data/vendor/cereal/include/cereal/external/rapidjson/internal/strfunc.h +0 -69
  89. data/vendor/cereal/include/cereal/external/rapidjson/internal/strtod.h +0 -290
  90. data/vendor/cereal/include/cereal/external/rapidjson/internal/swap.h +0 -46
  91. data/vendor/cereal/include/cereal/external/rapidjson/istreamwrapper.h +0 -128
  92. data/vendor/cereal/include/cereal/external/rapidjson/memorybuffer.h +0 -70
  93. data/vendor/cereal/include/cereal/external/rapidjson/memorystream.h +0 -71
  94. data/vendor/cereal/include/cereal/external/rapidjson/msinttypes/inttypes.h +0 -316
  95. data/vendor/cereal/include/cereal/external/rapidjson/msinttypes/stdint.h +0 -300
  96. data/vendor/cereal/include/cereal/external/rapidjson/ostreamwrapper.h +0 -81
  97. data/vendor/cereal/include/cereal/external/rapidjson/pointer.h +0 -1414
  98. data/vendor/cereal/include/cereal/external/rapidjson/prettywriter.h +0 -277
  99. data/vendor/cereal/include/cereal/external/rapidjson/rapidjson.h +0 -656
  100. data/vendor/cereal/include/cereal/external/rapidjson/reader.h +0 -2230
  101. data/vendor/cereal/include/cereal/external/rapidjson/schema.h +0 -2497
  102. data/vendor/cereal/include/cereal/external/rapidjson/stream.h +0 -223
  103. data/vendor/cereal/include/cereal/external/rapidjson/stringbuffer.h +0 -121
  104. data/vendor/cereal/include/cereal/external/rapidjson/writer.h +0 -709
  105. data/vendor/cereal/include/cereal/external/rapidxml/license.txt +0 -52
  106. data/vendor/cereal/include/cereal/external/rapidxml/manual.html +0 -406
  107. data/vendor/cereal/include/cereal/external/rapidxml/rapidxml.hpp +0 -2624
  108. data/vendor/cereal/include/cereal/external/rapidxml/rapidxml_iterators.hpp +0 -175
  109. data/vendor/cereal/include/cereal/external/rapidxml/rapidxml_print.hpp +0 -428
  110. data/vendor/cereal/include/cereal/external/rapidxml/rapidxml_utils.hpp +0 -123
  111. data/vendor/cereal/include/cereal/macros.hpp +0 -154
  112. data/vendor/cereal/include/cereal/specialize.hpp +0 -139
  113. data/vendor/cereal/include/cereal/types/array.hpp +0 -79
  114. data/vendor/cereal/include/cereal/types/atomic.hpp +0 -55
  115. data/vendor/cereal/include/cereal/types/base_class.hpp +0 -203
  116. data/vendor/cereal/include/cereal/types/bitset.hpp +0 -176
  117. data/vendor/cereal/include/cereal/types/boost_variant.hpp +0 -164
  118. data/vendor/cereal/include/cereal/types/chrono.hpp +0 -72
  119. data/vendor/cereal/include/cereal/types/common.hpp +0 -129
  120. data/vendor/cereal/include/cereal/types/complex.hpp +0 -56
  121. data/vendor/cereal/include/cereal/types/concepts/pair_associative_container.hpp +0 -73
  122. data/vendor/cereal/include/cereal/types/deque.hpp +0 -62
  123. data/vendor/cereal/include/cereal/types/forward_list.hpp +0 -68
  124. data/vendor/cereal/include/cereal/types/functional.hpp +0 -43
  125. data/vendor/cereal/include/cereal/types/list.hpp +0 -62
  126. data/vendor/cereal/include/cereal/types/map.hpp +0 -36
  127. data/vendor/cereal/include/cereal/types/memory.hpp +0 -425
  128. data/vendor/cereal/include/cereal/types/optional.hpp +0 -66
  129. data/vendor/cereal/include/cereal/types/polymorphic.hpp +0 -483
  130. data/vendor/cereal/include/cereal/types/queue.hpp +0 -132
  131. data/vendor/cereal/include/cereal/types/set.hpp +0 -103
  132. data/vendor/cereal/include/cereal/types/stack.hpp +0 -76
  133. data/vendor/cereal/include/cereal/types/string.hpp +0 -61
  134. data/vendor/cereal/include/cereal/types/tuple.hpp +0 -123
  135. data/vendor/cereal/include/cereal/types/unordered_map.hpp +0 -36
  136. data/vendor/cereal/include/cereal/types/unordered_set.hpp +0 -99
  137. data/vendor/cereal/include/cereal/types/utility.hpp +0 -47
  138. data/vendor/cereal/include/cereal/types/valarray.hpp +0 -89
  139. data/vendor/cereal/include/cereal/types/variant.hpp +0 -109
  140. data/vendor/cereal/include/cereal/types/vector.hpp +0 -112
  141. data/vendor/cereal/include/cereal/version.hpp +0 -52
  142. data/vendor/isotree/src/Makevars +0 -4
  143. data/vendor/isotree/src/crit.cpp +0 -912
  144. data/vendor/isotree/src/dist.cpp +0 -749
  145. data/vendor/isotree/src/extended.cpp +0 -790
  146. data/vendor/isotree/src/fit_model.cpp +0 -1090
  147. data/vendor/isotree/src/helpers_iforest.cpp +0 -324
  148. data/vendor/isotree/src/isoforest.cpp +0 -771
  149. data/vendor/isotree/src/mult.cpp +0 -607
  150. data/vendor/isotree/src/predict.cpp +0 -853
  151. data/vendor/isotree/src/utils.cpp +0 -1566
@@ -1,74 +0,0 @@
1
- // Tencent is pleased to support the open source community by making RapidJSON available.
2
- //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
- //
5
- // Licensed under the MIT License (the "License"); you may not use this file except
6
- // in compliance with the License. You may obtain a copy of the License at
7
- //
8
- // http://opensource.org/licenses/MIT
9
- //
10
- // Unless required by applicable law or agreed to in writing, software distributed
11
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
- // specific language governing permissions and limitations under the License.
14
-
15
- #ifndef CEREAL_RAPIDJSON_ERROR_EN_H_
16
- #define CEREAL_RAPIDJSON_ERROR_EN_H_
17
-
18
- #include "error.h"
19
-
20
- #ifdef __clang__
21
- CEREAL_RAPIDJSON_DIAG_PUSH
22
- CEREAL_RAPIDJSON_DIAG_OFF(switch-enum)
23
- CEREAL_RAPIDJSON_DIAG_OFF(covered-switch-default)
24
- #endif
25
-
26
- CEREAL_RAPIDJSON_NAMESPACE_BEGIN
27
-
28
- //! Maps error code of parsing into error message.
29
- /*!
30
- \ingroup CEREAL_RAPIDJSON_ERRORS
31
- \param parseErrorCode Error code obtained in parsing.
32
- \return the error message.
33
- \note User can make a copy of this function for localization.
34
- Using switch-case is safer for future modification of error codes.
35
- */
36
- inline const CEREAL_RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErrorCode) {
37
- switch (parseErrorCode) {
38
- case kParseErrorNone: return CEREAL_RAPIDJSON_ERROR_STRING("No error.");
39
-
40
- case kParseErrorDocumentEmpty: return CEREAL_RAPIDJSON_ERROR_STRING("The document is empty.");
41
- case kParseErrorDocumentRootNotSingular: return CEREAL_RAPIDJSON_ERROR_STRING("The document root must not be followed by other values.");
42
-
43
- case kParseErrorValueInvalid: return CEREAL_RAPIDJSON_ERROR_STRING("Invalid value.");
44
-
45
- case kParseErrorObjectMissName: return CEREAL_RAPIDJSON_ERROR_STRING("Missing a name for object member.");
46
- case kParseErrorObjectMissColon: return CEREAL_RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member.");
47
- case kParseErrorObjectMissCommaOrCurlyBracket: return CEREAL_RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member.");
48
-
49
- case kParseErrorArrayMissCommaOrSquareBracket: return CEREAL_RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element.");
50
-
51
- case kParseErrorStringUnicodeEscapeInvalidHex: return CEREAL_RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string.");
52
- case kParseErrorStringUnicodeSurrogateInvalid: return CEREAL_RAPIDJSON_ERROR_STRING("The surrogate pair in string is invalid.");
53
- case kParseErrorStringEscapeInvalid: return CEREAL_RAPIDJSON_ERROR_STRING("Invalid escape character in string.");
54
- case kParseErrorStringMissQuotationMark: return CEREAL_RAPIDJSON_ERROR_STRING("Missing a closing quotation mark in string.");
55
- case kParseErrorStringInvalidEncoding: return CEREAL_RAPIDJSON_ERROR_STRING("Invalid encoding in string.");
56
-
57
- case kParseErrorNumberTooBig: return CEREAL_RAPIDJSON_ERROR_STRING("Number too big to be stored in double.");
58
- case kParseErrorNumberMissFraction: return CEREAL_RAPIDJSON_ERROR_STRING("Miss fraction part in number.");
59
- case kParseErrorNumberMissExponent: return CEREAL_RAPIDJSON_ERROR_STRING("Miss exponent in number.");
60
-
61
- case kParseErrorTermination: return CEREAL_RAPIDJSON_ERROR_STRING("Terminate parsing due to Handler error.");
62
- case kParseErrorUnspecificSyntaxError: return CEREAL_RAPIDJSON_ERROR_STRING("Unspecific syntax error.");
63
-
64
- default: return CEREAL_RAPIDJSON_ERROR_STRING("Unknown error.");
65
- }
66
- }
67
-
68
- CEREAL_RAPIDJSON_NAMESPACE_END
69
-
70
- #ifdef __clang__
71
- CEREAL_RAPIDJSON_DIAG_POP
72
- #endif
73
-
74
- #endif // CEREAL_RAPIDJSON_ERROR_EN_H_
@@ -1,161 +0,0 @@
1
- // Tencent is pleased to support the open source community by making RapidJSON available.
2
- //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
- //
5
- // Licensed under the MIT License (the "License"); you may not use this file except
6
- // in compliance with the License. You may obtain a copy of the License at
7
- //
8
- // http://opensource.org/licenses/MIT
9
- //
10
- // Unless required by applicable law or agreed to in writing, software distributed
11
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
- // specific language governing permissions and limitations under the License.
14
-
15
- #ifndef CEREAL_RAPIDJSON_ERROR_ERROR_H_
16
- #define CEREAL_RAPIDJSON_ERROR_ERROR_H_
17
-
18
- #include "../rapidjson.h"
19
-
20
- #ifdef __clang__
21
- CEREAL_RAPIDJSON_DIAG_PUSH
22
- CEREAL_RAPIDJSON_DIAG_OFF(padded)
23
- #endif
24
-
25
- /*! \file error.h */
26
-
27
- /*! \defgroup CEREAL_RAPIDJSON_ERRORS RapidJSON error handling */
28
-
29
- ///////////////////////////////////////////////////////////////////////////////
30
- // CEREAL_RAPIDJSON_ERROR_CHARTYPE
31
-
32
- //! Character type of error messages.
33
- /*! \ingroup CEREAL_RAPIDJSON_ERRORS
34
- The default character type is \c char.
35
- On Windows, user can define this macro as \c TCHAR for supporting both
36
- unicode/non-unicode settings.
37
- */
38
- #ifndef CEREAL_RAPIDJSON_ERROR_CHARTYPE
39
- #define CEREAL_RAPIDJSON_ERROR_CHARTYPE char
40
- #endif
41
-
42
- ///////////////////////////////////////////////////////////////////////////////
43
- // CEREAL_RAPIDJSON_ERROR_STRING
44
-
45
- //! Macro for converting string literial to \ref CEREAL_RAPIDJSON_ERROR_CHARTYPE[].
46
- /*! \ingroup CEREAL_RAPIDJSON_ERRORS
47
- By default this conversion macro does nothing.
48
- On Windows, user can define this macro as \c _T(x) for supporting both
49
- unicode/non-unicode settings.
50
- */
51
- #ifndef CEREAL_RAPIDJSON_ERROR_STRING
52
- #define CEREAL_RAPIDJSON_ERROR_STRING(x) x
53
- #endif
54
-
55
- CEREAL_RAPIDJSON_NAMESPACE_BEGIN
56
-
57
- ///////////////////////////////////////////////////////////////////////////////
58
- // ParseErrorCode
59
-
60
- //! Error code of parsing.
61
- /*! \ingroup CEREAL_RAPIDJSON_ERRORS
62
- \see GenericReader::Parse, GenericReader::GetParseErrorCode
63
- */
64
- enum ParseErrorCode {
65
- kParseErrorNone = 0, //!< No error.
66
-
67
- kParseErrorDocumentEmpty, //!< The document is empty.
68
- kParseErrorDocumentRootNotSingular, //!< The document root must not follow by other values.
69
-
70
- kParseErrorValueInvalid, //!< Invalid value.
71
-
72
- kParseErrorObjectMissName, //!< Missing a name for object member.
73
- kParseErrorObjectMissColon, //!< Missing a colon after a name of object member.
74
- kParseErrorObjectMissCommaOrCurlyBracket, //!< Missing a comma or '}' after an object member.
75
-
76
- kParseErrorArrayMissCommaOrSquareBracket, //!< Missing a comma or ']' after an array element.
77
-
78
- kParseErrorStringUnicodeEscapeInvalidHex, //!< Incorrect hex digit after \\u escape in string.
79
- kParseErrorStringUnicodeSurrogateInvalid, //!< The surrogate pair in string is invalid.
80
- kParseErrorStringEscapeInvalid, //!< Invalid escape character in string.
81
- kParseErrorStringMissQuotationMark, //!< Missing a closing quotation mark in string.
82
- kParseErrorStringInvalidEncoding, //!< Invalid encoding in string.
83
-
84
- kParseErrorNumberTooBig, //!< Number too big to be stored in double.
85
- kParseErrorNumberMissFraction, //!< Miss fraction part in number.
86
- kParseErrorNumberMissExponent, //!< Miss exponent in number.
87
-
88
- kParseErrorTermination, //!< Parsing was terminated.
89
- kParseErrorUnspecificSyntaxError //!< Unspecific syntax error.
90
- };
91
-
92
- //! Result of parsing (wraps ParseErrorCode)
93
- /*!
94
- \ingroup CEREAL_RAPIDJSON_ERRORS
95
- \code
96
- Document doc;
97
- ParseResult ok = doc.Parse("[42]");
98
- if (!ok) {
99
- fprintf(stderr, "JSON parse error: %s (%u)",
100
- GetParseError_En(ok.Code()), ok.Offset());
101
- exit(EXIT_FAILURE);
102
- }
103
- \endcode
104
- \see GenericReader::Parse, GenericDocument::Parse
105
- */
106
- struct ParseResult {
107
- //!! Unspecified boolean type
108
- typedef bool (ParseResult::*BooleanType)() const;
109
- public:
110
- //! Default constructor, no error.
111
- ParseResult() : code_(kParseErrorNone), offset_(0) {}
112
- //! Constructor to set an error.
113
- ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {}
114
-
115
- //! Get the error code.
116
- ParseErrorCode Code() const { return code_; }
117
- //! Get the error offset, if \ref IsError(), 0 otherwise.
118
- size_t Offset() const { return offset_; }
119
-
120
- //! Explicit conversion to \c bool, returns \c true, iff !\ref IsError().
121
- operator BooleanType() const { return !IsError() ? &ParseResult::IsError : NULL; }
122
- //! Whether the result is an error.
123
- bool IsError() const { return code_ != kParseErrorNone; }
124
-
125
- bool operator==(const ParseResult& that) const { return code_ == that.code_; }
126
- bool operator==(ParseErrorCode code) const { return code_ == code; }
127
- friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; }
128
-
129
- bool operator!=(const ParseResult& that) const { return !(*this == that); }
130
- bool operator!=(ParseErrorCode code) const { return !(*this == code); }
131
- friend bool operator!=(ParseErrorCode code, const ParseResult & err) { return err != code; }
132
-
133
- //! Reset error code.
134
- void Clear() { Set(kParseErrorNone); }
135
- //! Update error code and offset.
136
- void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; }
137
-
138
- private:
139
- ParseErrorCode code_;
140
- size_t offset_;
141
- };
142
-
143
- //! Function pointer type of GetParseError().
144
- /*! \ingroup CEREAL_RAPIDJSON_ERRORS
145
-
146
- This is the prototype for \c GetParseError_X(), where \c X is a locale.
147
- User can dynamically change locale in runtime, e.g.:
148
- \code
149
- GetParseErrorFunc GetParseError = GetParseError_En; // or whatever
150
- const CEREAL_RAPIDJSON_ERROR_CHARTYPE* s = GetParseError(document.GetParseErrorCode());
151
- \endcode
152
- */
153
- typedef const CEREAL_RAPIDJSON_ERROR_CHARTYPE* (*GetParseErrorFunc)(ParseErrorCode);
154
-
155
- CEREAL_RAPIDJSON_NAMESPACE_END
156
-
157
- #ifdef __clang__
158
- CEREAL_RAPIDJSON_DIAG_POP
159
- #endif
160
-
161
- #endif // CEREAL_RAPIDJSON_ERROR_ERROR_H_
@@ -1,99 +0,0 @@
1
- // Tencent is pleased to support the open source community by making RapidJSON available.
2
- //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
- //
5
- // Licensed under the MIT License (the "License"); you may not use this file except
6
- // in compliance with the License. You may obtain a copy of the License at
7
- //
8
- // http://opensource.org/licenses/MIT
9
- //
10
- // Unless required by applicable law or agreed to in writing, software distributed
11
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
- // specific language governing permissions and limitations under the License.
14
-
15
- #ifndef CEREAL_RAPIDJSON_FILEREADSTREAM_H_
16
- #define CEREAL_RAPIDJSON_FILEREADSTREAM_H_
17
-
18
- #include "stream.h"
19
- #include <cstdio>
20
-
21
- #ifdef __clang__
22
- CEREAL_RAPIDJSON_DIAG_PUSH
23
- CEREAL_RAPIDJSON_DIAG_OFF(padded)
24
- CEREAL_RAPIDJSON_DIAG_OFF(unreachable-code)
25
- CEREAL_RAPIDJSON_DIAG_OFF(missing-noreturn)
26
- #endif
27
-
28
- CEREAL_RAPIDJSON_NAMESPACE_BEGIN
29
-
30
- //! File byte stream for input using fread().
31
- /*!
32
- \note implements Stream concept
33
- */
34
- class FileReadStream {
35
- public:
36
- typedef char Ch; //!< Character type (byte).
37
-
38
- //! Constructor.
39
- /*!
40
- \param fp File pointer opened for read.
41
- \param buffer user-supplied buffer.
42
- \param bufferSize size of buffer in bytes. Must >=4 bytes.
43
- */
44
- FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
45
- CEREAL_RAPIDJSON_ASSERT(fp_ != 0);
46
- CEREAL_RAPIDJSON_ASSERT(bufferSize >= 4);
47
- Read();
48
- }
49
-
50
- Ch Peek() const { return *current_; }
51
- Ch Take() { Ch c = *current_; Read(); return c; }
52
- size_t Tell() const { return count_ + static_cast<size_t>(current_ - buffer_); }
53
-
54
- // Not implemented
55
- void Put(Ch) { CEREAL_RAPIDJSON_ASSERT(false); }
56
- void Flush() { CEREAL_RAPIDJSON_ASSERT(false); }
57
- Ch* PutBegin() { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
58
- size_t PutEnd(Ch*) { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
59
-
60
- // For encoding detection only.
61
- const Ch* Peek4() const {
62
- return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0;
63
- }
64
-
65
- private:
66
- void Read() {
67
- if (current_ < bufferLast_)
68
- ++current_;
69
- else if (!eof_) {
70
- count_ += readCount_;
71
- readCount_ = std::fread(buffer_, 1, bufferSize_, fp_);
72
- bufferLast_ = buffer_ + readCount_ - 1;
73
- current_ = buffer_;
74
-
75
- if (readCount_ < bufferSize_) {
76
- buffer_[readCount_] = '\0';
77
- ++bufferLast_;
78
- eof_ = true;
79
- }
80
- }
81
- }
82
-
83
- std::FILE* fp_;
84
- Ch *buffer_;
85
- size_t bufferSize_;
86
- Ch *bufferLast_;
87
- Ch *current_;
88
- size_t readCount_;
89
- size_t count_; //!< Number of characters read
90
- bool eof_;
91
- };
92
-
93
- CEREAL_RAPIDJSON_NAMESPACE_END
94
-
95
- #ifdef __clang__
96
- CEREAL_RAPIDJSON_DIAG_POP
97
- #endif
98
-
99
- #endif // CEREAL_RAPIDJSON_FILESTREAM_H_
@@ -1,104 +0,0 @@
1
- // Tencent is pleased to support the open source community by making RapidJSON available.
2
- //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
- //
5
- // Licensed under the MIT License (the "License"); you may not use this file except
6
- // in compliance with the License. You may obtain a copy of the License at
7
- //
8
- // http://opensource.org/licenses/MIT
9
- //
10
- // Unless required by applicable law or agreed to in writing, software distributed
11
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
- // specific language governing permissions and limitations under the License.
14
-
15
- #ifndef CEREAL_RAPIDJSON_FILEWRITESTREAM_H_
16
- #define CEREAL_RAPIDJSON_FILEWRITESTREAM_H_
17
-
18
- #include "stream.h"
19
- #include <cstdio>
20
-
21
- #ifdef __clang__
22
- CEREAL_RAPIDJSON_DIAG_PUSH
23
- CEREAL_RAPIDJSON_DIAG_OFF(unreachable-code)
24
- #endif
25
-
26
- CEREAL_RAPIDJSON_NAMESPACE_BEGIN
27
-
28
- //! Wrapper of C file stream for output using fwrite().
29
- /*!
30
- \note implements Stream concept
31
- */
32
- class FileWriteStream {
33
- public:
34
- typedef char Ch; //!< Character type. Only support char.
35
-
36
- FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
37
- CEREAL_RAPIDJSON_ASSERT(fp_ != 0);
38
- }
39
-
40
- void Put(char c) {
41
- if (current_ >= bufferEnd_)
42
- Flush();
43
-
44
- *current_++ = c;
45
- }
46
-
47
- void PutN(char c, size_t n) {
48
- size_t avail = static_cast<size_t>(bufferEnd_ - current_);
49
- while (n > avail) {
50
- std::memset(current_, c, avail);
51
- current_ += avail;
52
- Flush();
53
- n -= avail;
54
- avail = static_cast<size_t>(bufferEnd_ - current_);
55
- }
56
-
57
- if (n > 0) {
58
- std::memset(current_, c, n);
59
- current_ += n;
60
- }
61
- }
62
-
63
- void Flush() {
64
- if (current_ != buffer_) {
65
- size_t result = std::fwrite(buffer_, 1, static_cast<size_t>(current_ - buffer_), fp_);
66
- if (result < static_cast<size_t>(current_ - buffer_)) {
67
- // failure deliberately ignored at this time
68
- // added to avoid warn_unused_result build errors
69
- }
70
- current_ = buffer_;
71
- }
72
- }
73
-
74
- // Not implemented
75
- char Peek() const { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
76
- char Take() { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
77
- size_t Tell() const { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
78
- char* PutBegin() { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
79
- size_t PutEnd(char*) { CEREAL_RAPIDJSON_ASSERT(false); return 0; }
80
-
81
- private:
82
- // Prohibit copy constructor & assignment operator.
83
- FileWriteStream(const FileWriteStream&);
84
- FileWriteStream& operator=(const FileWriteStream&);
85
-
86
- std::FILE* fp_;
87
- char *buffer_;
88
- char *bufferEnd_;
89
- char *current_;
90
- };
91
-
92
- //! Implement specialized version of PutN() with memset() for better performance.
93
- template<>
94
- inline void PutN(FileWriteStream& stream, char c, size_t n) {
95
- stream.PutN(c, n);
96
- }
97
-
98
- CEREAL_RAPIDJSON_NAMESPACE_END
99
-
100
- #ifdef __clang__
101
- CEREAL_RAPIDJSON_DIAG_POP
102
- #endif
103
-
104
- #endif // CEREAL_RAPIDJSON_FILESTREAM_H_
@@ -1,151 +0,0 @@
1
- // Tencent is pleased to support the open source community by making RapidJSON available.
2
- //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
- //
5
- // Licensed under the MIT License (the "License"); you may not use this file except
6
- // in compliance with the License. You may obtain a copy of the License at
7
- //
8
- // http://opensource.org/licenses/MIT
9
- //
10
- // Unless required by applicable law or agreed to in writing, software distributed
11
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
- // specific language governing permissions and limitations under the License.
14
-
15
- #ifndef CEREAL_RAPIDJSON_FWD_H_
16
- #define CEREAL_RAPIDJSON_FWD_H_
17
-
18
- #include "rapidjson.h"
19
-
20
- CEREAL_RAPIDJSON_NAMESPACE_BEGIN
21
-
22
- // encodings.h
23
-
24
- template<typename CharType> struct UTF8;
25
- template<typename CharType> struct UTF16;
26
- template<typename CharType> struct UTF16BE;
27
- template<typename CharType> struct UTF16LE;
28
- template<typename CharType> struct UTF32;
29
- template<typename CharType> struct UTF32BE;
30
- template<typename CharType> struct UTF32LE;
31
- template<typename CharType> struct ASCII;
32
- template<typename CharType> struct AutoUTF;
33
-
34
- template<typename SourceEncoding, typename TargetEncoding>
35
- struct Transcoder;
36
-
37
- // allocators.h
38
-
39
- class CrtAllocator;
40
-
41
- template <typename BaseAllocator>
42
- class MemoryPoolAllocator;
43
-
44
- // stream.h
45
-
46
- template <typename Encoding>
47
- struct GenericStringStream;
48
-
49
- typedef GenericStringStream<UTF8<char> > StringStream;
50
-
51
- template <typename Encoding>
52
- struct GenericInsituStringStream;
53
-
54
- typedef GenericInsituStringStream<UTF8<char> > InsituStringStream;
55
-
56
- // stringbuffer.h
57
-
58
- template <typename Encoding, typename Allocator>
59
- class GenericStringBuffer;
60
-
61
- typedef GenericStringBuffer<UTF8<char>, CrtAllocator> StringBuffer;
62
-
63
- // filereadstream.h
64
-
65
- class FileReadStream;
66
-
67
- // filewritestream.h
68
-
69
- class FileWriteStream;
70
-
71
- // memorybuffer.h
72
-
73
- template <typename Allocator>
74
- struct GenericMemoryBuffer;
75
-
76
- typedef GenericMemoryBuffer<CrtAllocator> MemoryBuffer;
77
-
78
- // memorystream.h
79
-
80
- struct MemoryStream;
81
-
82
- // reader.h
83
-
84
- template<typename Encoding, typename Derived>
85
- struct BaseReaderHandler;
86
-
87
- template <typename SourceEncoding, typename TargetEncoding, typename StackAllocator>
88
- class GenericReader;
89
-
90
- typedef GenericReader<UTF8<char>, UTF8<char>, CrtAllocator> Reader;
91
-
92
- // writer.h
93
-
94
- template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags>
95
- class Writer;
96
-
97
- // prettywriter.h
98
-
99
- template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags>
100
- class PrettyWriter;
101
-
102
- // document.h
103
-
104
- template <typename Encoding, typename Allocator>
105
- struct GenericMember;
106
-
107
- template <bool Const, typename Encoding, typename Allocator>
108
- class GenericMemberIterator;
109
-
110
- template<typename CharType>
111
- struct GenericStringRef;
112
-
113
- template <typename Encoding, typename Allocator>
114
- class GenericValue;
115
-
116
- typedef GenericValue<UTF8<char>, MemoryPoolAllocator<CrtAllocator> > Value;
117
-
118
- template <typename Encoding, typename Allocator, typename StackAllocator>
119
- class GenericDocument;
120
-
121
- typedef GenericDocument<UTF8<char>, MemoryPoolAllocator<CrtAllocator>, CrtAllocator> Document;
122
-
123
- // pointer.h
124
-
125
- template <typename ValueType, typename Allocator>
126
- class GenericPointer;
127
-
128
- typedef GenericPointer<Value, CrtAllocator> Pointer;
129
-
130
- // schema.h
131
-
132
- template <typename SchemaDocumentType>
133
- class IGenericRemoteSchemaDocumentProvider;
134
-
135
- template <typename ValueT, typename Allocator>
136
- class GenericSchemaDocument;
137
-
138
- typedef GenericSchemaDocument<Value, CrtAllocator> SchemaDocument;
139
- typedef IGenericRemoteSchemaDocumentProvider<SchemaDocument> IRemoteSchemaDocumentProvider;
140
-
141
- template <
142
- typename SchemaDocumentType,
143
- typename OutputHandler,
144
- typename StateAllocator>
145
- class GenericSchemaValidator;
146
-
147
- typedef GenericSchemaValidator<SchemaDocument, BaseReaderHandler<UTF8<char>, void>, CrtAllocator> SchemaValidator;
148
-
149
- CEREAL_RAPIDJSON_NAMESPACE_END
150
-
151
- #endif // CEREAL_RAPIDJSON_RAPIDJSONFWD_H_