couchbase 3.1.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3048) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/ext/CMakeLists.txt +47 -113
  4. data/ext/couchbase/CMakeLists.txt +142 -0
  5. data/ext/{LICENSE.txt → couchbase/LICENSE.txt} +0 -0
  6. data/ext/{cmake → couchbase/cmake}/Backtrace.cmake +0 -0
  7. data/ext/{cmake → couchbase/cmake}/BuildTracing.cmake +0 -0
  8. data/ext/{cmake → couchbase/cmake}/Cache.cmake +0 -0
  9. data/ext/couchbase/cmake/CompilerWarnings.cmake +83 -0
  10. data/ext/couchbase/cmake/DetectStandardFilesystem.cmake +30 -0
  11. data/ext/couchbase/cmake/OpenSSL.cmake +24 -0
  12. data/ext/couchbase/cmake/PreventInSourceBuilds.cmake +21 -0
  13. data/ext/couchbase/cmake/Sanitizers.cmake +67 -0
  14. data/ext/couchbase/cmake/StandardProjectSettings.cmake +45 -0
  15. data/ext/{cmake → couchbase/cmake}/StaticAnalyzers.cmake +0 -0
  16. data/ext/couchbase/cmake/Testing.cmake +63 -0
  17. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +44 -0
  18. data/ext/couchbase/cmake/VersionInfo.cmake +46 -0
  19. data/ext/couchbase/cmake/build_config.hxx.in +20 -0
  20. data/ext/couchbase/cmake/build_version.hxx.in +32 -0
  21. data/ext/couchbase/cmake/test_filesystem.cpp.in +22 -0
  22. data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +26 -0
  23. data/ext/couchbase/couchbase/bucket.hxx +536 -0
  24. data/ext/couchbase/couchbase/capella_ca.hxx +43 -0
  25. data/ext/couchbase/couchbase/cas.hxx +47 -0
  26. data/ext/couchbase/couchbase/cas_fmt.hxx +37 -0
  27. data/ext/couchbase/couchbase/cluster.cxx +111 -0
  28. data/ext/couchbase/couchbase/cluster.hxx +423 -0
  29. data/ext/couchbase/couchbase/cluster_options.cxx +45 -0
  30. data/ext/couchbase/couchbase/cluster_options.hxx +78 -0
  31. data/ext/couchbase/couchbase/crypto/CMakeLists.txt +12 -0
  32. data/ext/couchbase/couchbase/crypto/cbcrypto.cc +887 -0
  33. data/ext/couchbase/couchbase/crypto/cbcrypto.h +88 -0
  34. data/ext/couchbase/couchbase/design_document_namespace.hxx +26 -0
  35. data/ext/couchbase/couchbase/design_document_namespace_fmt.hxx +47 -0
  36. data/ext/couchbase/couchbase/diagnostics.hxx +97 -0
  37. data/ext/couchbase/couchbase/diagnostics_fmt.hxx +113 -0
  38. data/ext/couchbase/couchbase/diagnostics_json.hxx +100 -0
  39. data/ext/couchbase/couchbase/document_id.cxx +89 -0
  40. data/ext/couchbase/couchbase/document_id.hxx +102 -0
  41. data/ext/couchbase/couchbase/document_id_fmt.hxx +37 -0
  42. data/ext/couchbase/couchbase/error_context/analytics.hxx +51 -0
  43. data/ext/couchbase/couchbase/error_context/http.hxx +47 -0
  44. data/ext/couchbase/couchbase/error_context/key_value.hxx +50 -0
  45. data/ext/couchbase/couchbase/error_context/query.hxx +51 -0
  46. data/ext/couchbase/couchbase/error_context/search.hxx +50 -0
  47. data/ext/couchbase/couchbase/error_context/view.hxx +51 -0
  48. data/ext/couchbase/couchbase/errors.hxx +1038 -0
  49. data/ext/couchbase/couchbase/io/CMakeLists.txt +12 -0
  50. data/ext/couchbase/couchbase/io/dns_client.hxx +217 -0
  51. data/ext/couchbase/couchbase/io/dns_codec.hxx +206 -0
  52. data/ext/couchbase/couchbase/io/dns_config.hxx +115 -0
  53. data/ext/couchbase/couchbase/io/dns_message.hxx +555 -0
  54. data/ext/couchbase/couchbase/io/http_command.hxx +174 -0
  55. data/ext/couchbase/couchbase/io/http_context.hxx +40 -0
  56. data/ext/couchbase/couchbase/io/http_message.hxx +116 -0
  57. data/ext/couchbase/couchbase/io/http_parser.cxx +141 -0
  58. data/ext/couchbase/couchbase/io/http_parser.hxx +55 -0
  59. data/ext/couchbase/couchbase/io/http_session.hxx +544 -0
  60. data/ext/couchbase/couchbase/io/http_session_manager.hxx +377 -0
  61. data/ext/couchbase/couchbase/io/http_traits.hxx +30 -0
  62. data/ext/couchbase/couchbase/io/ip_protocol.hxx +28 -0
  63. data/ext/couchbase/couchbase/io/mcbp_command.hxx +300 -0
  64. data/ext/couchbase/couchbase/io/mcbp_context.hxx +39 -0
  65. data/ext/couchbase/couchbase/io/mcbp_message.cxx +39 -0
  66. data/ext/couchbase/couchbase/io/mcbp_message.hxx +55 -0
  67. data/ext/couchbase/couchbase/io/mcbp_parser.cxx +86 -0
  68. data/ext/couchbase/couchbase/io/mcbp_parser.hxx +45 -0
  69. data/ext/couchbase/couchbase/io/mcbp_session.hxx +1317 -0
  70. data/ext/couchbase/couchbase/io/mcbp_traits.hxx +30 -0
  71. data/ext/couchbase/couchbase/io/query_cache.hxx +61 -0
  72. data/ext/couchbase/{io → couchbase/io}/retry_action.hxx +0 -0
  73. data/ext/couchbase/couchbase/io/retry_context.hxx +38 -0
  74. data/ext/couchbase/couchbase/io/retry_orchestrator.hxx +112 -0
  75. data/ext/couchbase/couchbase/io/retry_reason.hxx +158 -0
  76. data/ext/couchbase/couchbase/io/retry_reason_fmt.hxx +103 -0
  77. data/ext/couchbase/couchbase/io/retry_strategy.hxx +152 -0
  78. data/ext/couchbase/couchbase/io/streams.hxx +253 -0
  79. data/ext/couchbase/couchbase/json_string.hxx +48 -0
  80. data/ext/couchbase/couchbase/logger/CMakeLists.txt +9 -0
  81. data/ext/couchbase/couchbase/logger/configuration.hxx +52 -0
  82. data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.cxx +157 -0
  83. data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.hxx +76 -0
  84. data/ext/couchbase/couchbase/logger/logger.cxx +337 -0
  85. data/ext/couchbase/couchbase/logger/logger.hxx +235 -0
  86. data/ext/couchbase/couchbase/management/CMakeLists.txt +13 -0
  87. data/ext/couchbase/couchbase/management/analytics_dataset.hxx +30 -0
  88. data/ext/couchbase/couchbase/management/analytics_index.hxx +30 -0
  89. data/ext/couchbase/couchbase/management/analytics_link.hxx +22 -0
  90. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.cxx +67 -0
  91. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.hxx +76 -0
  92. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external_json.hxx +52 -0
  93. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.cxx +104 -0
  94. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.hxx +107 -0
  95. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote_json.hxx +63 -0
  96. data/ext/couchbase/couchbase/management/analytics_link_s3_external.cxx +57 -0
  97. data/ext/couchbase/couchbase/management/analytics_link_s3_external.hxx +69 -0
  98. data/ext/couchbase/couchbase/management/analytics_link_s3_external_json.hxx +47 -0
  99. data/ext/couchbase/couchbase/management/bucket_settings.hxx +134 -0
  100. data/ext/couchbase/couchbase/management/bucket_settings_json.hxx +123 -0
  101. data/ext/couchbase/couchbase/management/design_document.hxx +41 -0
  102. data/ext/couchbase/couchbase/management/eventing_function.hxx +188 -0
  103. data/ext/couchbase/couchbase/management/eventing_function_json.hxx +212 -0
  104. data/ext/couchbase/couchbase/management/eventing_status.hxx +84 -0
  105. data/ext/couchbase/couchbase/management/eventing_status_json.hxx +77 -0
  106. data/ext/couchbase/couchbase/management/query_index.hxx +39 -0
  107. data/ext/couchbase/couchbase/management/rbac.hxx +77 -0
  108. data/ext/couchbase/couchbase/management/rbac_fmt.hxx +49 -0
  109. data/ext/couchbase/couchbase/management/rbac_json.hxx +179 -0
  110. data/ext/couchbase/couchbase/management/search_index.hxx +38 -0
  111. data/ext/couchbase/couchbase/management/search_index_json.hxx +58 -0
  112. data/ext/couchbase/couchbase/meta/CMakeLists.txt +15 -0
  113. data/ext/couchbase/couchbase/meta/version.cxx +181 -0
  114. data/ext/couchbase/couchbase/meta/version.hxx +45 -0
  115. data/ext/couchbase/couchbase/metrics/CMakeLists.txt +11 -0
  116. data/ext/couchbase/couchbase/metrics/logging_meter.cxx +194 -0
  117. data/ext/couchbase/couchbase/metrics/logging_meter.hxx +74 -0
  118. data/ext/couchbase/couchbase/metrics/logging_meter_options.hxx +28 -0
  119. data/ext/couchbase/couchbase/metrics/meter.hxx +52 -0
  120. data/ext/couchbase/couchbase/metrics/noop_meter.hxx +47 -0
  121. data/ext/couchbase/couchbase/mutation_token.hxx +31 -0
  122. data/ext/couchbase/couchbase/mutation_token_fmt.hxx +37 -0
  123. data/ext/couchbase/couchbase/operations/CMakeLists.txt +35 -0
  124. data/ext/couchbase/couchbase/operations/document_analytics.cxx +195 -0
  125. data/ext/couchbase/couchbase/operations/document_analytics.hxx +92 -0
  126. data/ext/couchbase/couchbase/operations/document_append.cxx +46 -0
  127. data/ext/couchbase/couchbase/operations/document_append.hxx +63 -0
  128. data/ext/couchbase/couchbase/operations/document_decrement.cxx +57 -0
  129. data/ext/couchbase/couchbase/operations/document_decrement.hxx +67 -0
  130. data/ext/couchbase/couchbase/operations/document_exists.cxx +49 -0
  131. data/ext/couchbase/couchbase/operations/document_exists.hxx +61 -0
  132. data/ext/couchbase/couchbase/operations/document_get.cxx +44 -0
  133. data/ext/couchbase/couchbase/operations/document_get.hxx +53 -0
  134. data/ext/couchbase/couchbase/operations/document_get_and_lock.cxx +45 -0
  135. data/ext/couchbase/couchbase/operations/document_get_and_lock.hxx +54 -0
  136. data/ext/couchbase/couchbase/operations/document_get_and_touch.cxx +45 -0
  137. data/ext/couchbase/couchbase/operations/document_get_and_touch.hxx +54 -0
  138. data/ext/couchbase/couchbase/operations/document_get_projected.cxx +227 -0
  139. data/ext/couchbase/couchbase/operations/document_get_projected.hxx +58 -0
  140. data/ext/couchbase/couchbase/operations/document_increment.cxx +57 -0
  141. data/ext/couchbase/couchbase/operations/document_increment.hxx +67 -0
  142. data/ext/couchbase/couchbase/operations/document_insert.cxx +48 -0
  143. data/ext/couchbase/couchbase/operations/document_insert.hxx +65 -0
  144. data/ext/couchbase/couchbase/operations/document_lookup_in.cxx +81 -0
  145. data/ext/couchbase/couchbase/operations/document_lookup_in.hxx +64 -0
  146. data/ext/couchbase/couchbase/operations/document_mutate_in.cxx +104 -0
  147. data/ext/couchbase/couchbase/operations/document_mutate_in.hxx +82 -0
  148. data/ext/couchbase/couchbase/operations/document_prepend.cxx +46 -0
  149. data/ext/couchbase/couchbase/operations/document_prepend.hxx +63 -0
  150. data/ext/couchbase/couchbase/operations/document_query.cxx +370 -0
  151. data/ext/couchbase/couchbase/operations/document_query.hxx +123 -0
  152. data/ext/couchbase/couchbase/operations/document_remove.cxx +46 -0
  153. data/ext/couchbase/couchbase/operations/document_remove.hxx +63 -0
  154. data/ext/couchbase/couchbase/operations/document_replace.cxx +52 -0
  155. data/ext/couchbase/couchbase/operations/document_replace.hxx +67 -0
  156. data/ext/couchbase/couchbase/operations/document_search.cxx +311 -0
  157. data/ext/couchbase/couchbase/operations/document_search.hxx +153 -0
  158. data/ext/couchbase/couchbase/operations/document_touch.cxx +43 -0
  159. data/ext/couchbase/couchbase/operations/document_touch.hxx +52 -0
  160. data/ext/couchbase/couchbase/operations/document_unlock.cxx +43 -0
  161. data/ext/couchbase/couchbase/operations/document_unlock.hxx +52 -0
  162. data/ext/couchbase/couchbase/operations/document_upsert.cxx +52 -0
  163. data/ext/couchbase/couchbase/operations/document_upsert.hxx +66 -0
  164. data/ext/couchbase/couchbase/operations/document_view.cxx +183 -0
  165. data/ext/couchbase/couchbase/operations/document_view.hxx +97 -0
  166. data/ext/couchbase/couchbase/operations/http_noop.cxx +60 -0
  167. data/ext/couchbase/couchbase/operations/http_noop.hxx +48 -0
  168. data/ext/couchbase/couchbase/operations/management/CMakeLists.txt +79 -0
  169. data/ext/couchbase/couchbase/operations/management/analytics.hxx +34 -0
  170. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.cxx +94 -0
  171. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.hxx +57 -0
  172. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.cxx +83 -0
  173. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.hxx +54 -0
  174. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.cxx +80 -0
  175. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.hxx +52 -0
  176. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.cxx +82 -0
  177. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.hxx +53 -0
  178. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.cxx +82 -0
  179. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.hxx +53 -0
  180. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.cxx +70 -0
  181. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.hxx +52 -0
  182. data/ext/couchbase/couchbase/operations/management/analytics_index_create.cxx +106 -0
  183. data/ext/couchbase/couchbase/operations/management/analytics_index_create.hxx +56 -0
  184. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.cxx +90 -0
  185. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.hxx +55 -0
  186. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.cxx +80 -0
  187. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.hxx +52 -0
  188. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.cxx +82 -0
  189. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.hxx +57 -0
  190. data/ext/couchbase/couchbase/operations/management/analytics_link_create.cxx +87 -0
  191. data/ext/couchbase/couchbase/operations/management/analytics_link_create.hxx +77 -0
  192. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.cxx +80 -0
  193. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.hxx +56 -0
  194. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.cxx +103 -0
  195. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.hxx +56 -0
  196. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.cxx +130 -0
  197. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.hxx +63 -0
  198. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.cxx +87 -0
  199. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.hxx +78 -0
  200. data/ext/couchbase/couchbase/operations/management/analytics_link_utils.hxx +37 -0
  201. data/ext/couchbase/couchbase/operations/management/analytics_problem.hxx +30 -0
  202. data/ext/couchbase/couchbase/operations/management/bucket.hxx +25 -0
  203. data/ext/couchbase/couchbase/operations/management/bucket_create.cxx +171 -0
  204. data/ext/couchbase/couchbase/operations/management/bucket_create.hxx +52 -0
  205. data/ext/couchbase/couchbase/operations/management/bucket_describe.cxx +67 -0
  206. data/ext/couchbase/couchbase/operations/management/bucket_describe.hxx +61 -0
  207. data/ext/couchbase/couchbase/operations/management/bucket_drop.cxx +52 -0
  208. data/ext/couchbase/couchbase/operations/management/bucket_drop.hxx +49 -0
  209. data/ext/couchbase/couchbase/operations/management/bucket_flush.cxx +59 -0
  210. data/ext/couchbase/couchbase/operations/management/bucket_flush.hxx +49 -0
  211. data/ext/couchbase/couchbase/operations/management/bucket_get.cxx +59 -0
  212. data/ext/couchbase/couchbase/operations/management/bucket_get.hxx +51 -0
  213. data/ext/couchbase/couchbase/operations/management/bucket_get_all.cxx +59 -0
  214. data/ext/couchbase/couchbase/operations/management/bucket_get_all.hxx +49 -0
  215. data/ext/couchbase/couchbase/operations/management/bucket_update.cxx +130 -0
  216. data/ext/couchbase/couchbase/operations/management/bucket_update.hxx +52 -0
  217. data/ext/couchbase/couchbase/operations/management/cluster_describe.cxx +90 -0
  218. data/ext/couchbase/couchbase/operations/management/cluster_describe.hxx +72 -0
  219. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.cxx +44 -0
  220. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.hxx +48 -0
  221. data/ext/couchbase/couchbase/operations/management/collection_create.cxx +83 -0
  222. data/ext/couchbase/couchbase/operations/management/collection_create.hxx +53 -0
  223. data/ext/couchbase/couchbase/operations/management/collection_drop.cxx +73 -0
  224. data/ext/couchbase/couchbase/operations/management/collection_drop.hxx +52 -0
  225. data/ext/couchbase/couchbase/operations/management/collections.hxx +25 -0
  226. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.cxx +40 -0
  227. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.hxx +53 -0
  228. data/ext/couchbase/couchbase/operations/management/error_utils.cxx +265 -0
  229. data/ext/couchbase/couchbase/operations/management/error_utils.hxx +48 -0
  230. data/ext/couchbase/couchbase/operations/management/eventing.hxx +28 -0
  231. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.cxx +56 -0
  232. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.hxx +52 -0
  233. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.cxx +57 -0
  234. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.hxx +52 -0
  235. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.cxx +64 -0
  236. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.hxx +51 -0
  237. data/ext/couchbase/couchbase/operations/management/eventing_get_function.cxx +56 -0
  238. data/ext/couchbase/couchbase/operations/management/eventing_get_function.hxx +53 -0
  239. data/ext/couchbase/couchbase/operations/management/eventing_get_status.cxx +56 -0
  240. data/ext/couchbase/couchbase/operations/management/eventing_get_status.hxx +53 -0
  241. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.cxx +56 -0
  242. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.hxx +52 -0
  243. data/ext/couchbase/couchbase/operations/management/eventing_problem.hxx +31 -0
  244. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.cxx +56 -0
  245. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.hxx +52 -0
  246. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.cxx +56 -0
  247. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.hxx +52 -0
  248. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.cxx +341 -0
  249. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.hxx +52 -0
  250. data/ext/couchbase/couchbase/operations/management/freeform.cxx +55 -0
  251. data/ext/couchbase/couchbase/operations/management/freeform.hxx +55 -0
  252. data/ext/couchbase/couchbase/operations/management/group_drop.cxx +51 -0
  253. data/ext/couchbase/couchbase/operations/management/group_drop.hxx +49 -0
  254. data/ext/couchbase/couchbase/operations/management/group_get.cxx +60 -0
  255. data/ext/couchbase/couchbase/operations/management/group_get.hxx +50 -0
  256. data/ext/couchbase/couchbase/operations/management/group_get_all.cxx +58 -0
  257. data/ext/couchbase/couchbase/operations/management/group_get_all.hxx +49 -0
  258. data/ext/couchbase/couchbase/operations/management/group_upsert.cxx +96 -0
  259. data/ext/couchbase/couchbase/operations/management/group_upsert.hxx +51 -0
  260. data/ext/couchbase/couchbase/operations/management/query.hxx +23 -0
  261. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.cxx +88 -0
  262. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.hxx +61 -0
  263. data/ext/couchbase/couchbase/operations/management/query_index_create.cxx +149 -0
  264. data/ext/couchbase/couchbase/operations/management/query_index_create.hxx +65 -0
  265. data/ext/couchbase/couchbase/operations/management/query_index_drop.cxx +128 -0
  266. data/ext/couchbase/couchbase/operations/management/query_index_drop.hxx +61 -0
  267. data/ext/couchbase/couchbase/operations/management/query_index_get_all.cxx +126 -0
  268. data/ext/couchbase/couchbase/operations/management/query_index_get_all.hxx +54 -0
  269. data/ext/couchbase/couchbase/operations/management/role_get_all.cxx +58 -0
  270. data/ext/couchbase/couchbase/operations/management/role_get_all.hxx +49 -0
  271. data/ext/couchbase/couchbase/operations/management/scope_create.cxx +75 -0
  272. data/ext/couchbase/couchbase/operations/management/scope_create.hxx +51 -0
  273. data/ext/couchbase/couchbase/operations/management/scope_drop.cxx +70 -0
  274. data/ext/couchbase/couchbase/operations/management/scope_drop.hxx +51 -0
  275. data/ext/couchbase/couchbase/operations/management/scope_get_all.cxx +62 -0
  276. data/ext/couchbase/couchbase/operations/management/scope_get_all.hxx +51 -0
  277. data/ext/couchbase/couchbase/operations/management/search.hxx +30 -0
  278. data/ext/couchbase/couchbase/operations/management/search_get_stats.cxx +41 -0
  279. data/ext/couchbase/couchbase/operations/management/search_get_stats.hxx +48 -0
  280. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.cxx +85 -0
  281. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.hxx +54 -0
  282. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.cxx +73 -0
  283. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.hxx +52 -0
  284. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.cxx +73 -0
  285. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.hxx +57 -0
  286. data/ext/couchbase/couchbase/operations/management/search_index_control_query.cxx +73 -0
  287. data/ext/couchbase/couchbase/operations/management/search_index_control_query.hxx +52 -0
  288. data/ext/couchbase/couchbase/operations/management/search_index_drop.cxx +72 -0
  289. data/ext/couchbase/couchbase/operations/management/search_index_drop.hxx +51 -0
  290. data/ext/couchbase/couchbase/operations/management/search_index_get.cxx +75 -0
  291. data/ext/couchbase/couchbase/operations/management/search_index_get.hxx +54 -0
  292. data/ext/couchbase/couchbase/operations/management/search_index_get_all.cxx +67 -0
  293. data/ext/couchbase/couchbase/operations/management/search_index_get_all.hxx +51 -0
  294. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.cxx +79 -0
  295. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.hxx +53 -0
  296. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.cxx +71 -0
  297. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.hxx +52 -0
  298. data/ext/couchbase/couchbase/operations/management/search_index_upsert.cxx +108 -0
  299. data/ext/couchbase/couchbase/operations/management/search_index_upsert.hxx +52 -0
  300. data/ext/couchbase/couchbase/operations/management/user.hxx +28 -0
  301. data/ext/couchbase/couchbase/operations/management/user_drop.cxx +52 -0
  302. data/ext/couchbase/couchbase/operations/management/user_drop.hxx +51 -0
  303. data/ext/couchbase/couchbase/operations/management/user_get.cxx +61 -0
  304. data/ext/couchbase/couchbase/operations/management/user_get.hxx +52 -0
  305. data/ext/couchbase/couchbase/operations/management/user_get_all.cxx +59 -0
  306. data/ext/couchbase/couchbase/operations/management/user_get_all.hxx +51 -0
  307. data/ext/couchbase/couchbase/operations/management/user_upsert.cxx +101 -0
  308. data/ext/couchbase/couchbase/operations/management/user_upsert.hxx +52 -0
  309. data/ext/couchbase/couchbase/operations/management/view.hxx +23 -0
  310. data/ext/couchbase/couchbase/operations/management/view_index_drop.cxx +46 -0
  311. data/ext/couchbase/couchbase/operations/management/view_index_drop.hxx +52 -0
  312. data/ext/couchbase/couchbase/operations/management/view_index_get.cxx +74 -0
  313. data/ext/couchbase/couchbase/operations/management/view_index_get.hxx +53 -0
  314. data/ext/couchbase/couchbase/operations/management/view_index_get_all.cxx +108 -0
  315. data/ext/couchbase/couchbase/operations/management/view_index_get_all.hxx +52 -0
  316. data/ext/couchbase/couchbase/operations/management/view_index_upsert.cxx +71 -0
  317. data/ext/couchbase/couchbase/operations/management/view_index_upsert.hxx +51 -0
  318. data/ext/couchbase/couchbase/operations/mcbp_noop.cxx +38 -0
  319. data/ext/couchbase/couchbase/operations/mcbp_noop.hxx +49 -0
  320. data/ext/couchbase/couchbase/operations.hxx +42 -0
  321. data/ext/couchbase/couchbase/origin.hxx +185 -0
  322. data/ext/couchbase/couchbase/platform/CMakeLists.txt +16 -0
  323. data/ext/couchbase/couchbase/platform/backtrace.c +189 -0
  324. data/ext/couchbase/{platform → couchbase/platform}/backtrace.h +0 -0
  325. data/ext/couchbase/couchbase/platform/base64.cc +234 -0
  326. data/ext/couchbase/couchbase/platform/base64.h +44 -0
  327. data/ext/couchbase/couchbase/platform/dirutils.cc +123 -0
  328. data/ext/couchbase/couchbase/platform/dirutils.h +43 -0
  329. data/ext/couchbase/couchbase/platform/random.cc +120 -0
  330. data/ext/couchbase/{platform → couchbase/platform}/random.h +0 -0
  331. data/ext/couchbase/couchbase/platform/string_hex.cc +99 -0
  332. data/ext/couchbase/couchbase/platform/string_hex.h +50 -0
  333. data/ext/couchbase/couchbase/platform/terminate_handler.cc +125 -0
  334. data/ext/couchbase/{platform → couchbase/platform}/terminate_handler.h +0 -0
  335. data/ext/couchbase/couchbase/platform/uuid.cc +98 -0
  336. data/ext/couchbase/{platform → couchbase/platform}/uuid.h +0 -0
  337. data/ext/couchbase/couchbase/protocol/CMakeLists.txt +42 -0
  338. data/ext/couchbase/couchbase/protocol/client_opcode.hxx +359 -0
  339. data/ext/couchbase/couchbase/protocol/client_opcode_fmt.hxx +316 -0
  340. data/ext/couchbase/couchbase/protocol/client_request.cxx +37 -0
  341. data/ext/couchbase/couchbase/protocol/client_request.hxx +157 -0
  342. data/ext/couchbase/couchbase/protocol/client_response.cxx +74 -0
  343. data/ext/couchbase/couchbase/protocol/client_response.hxx +211 -0
  344. data/ext/couchbase/couchbase/protocol/cmd_append.cxx +82 -0
  345. data/ext/couchbase/couchbase/protocol/cmd_append.hxx +107 -0
  346. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.cxx +51 -0
  347. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.hxx +57 -0
  348. data/ext/couchbase/couchbase/protocol/cmd_decrement.cxx +112 -0
  349. data/ext/couchbase/couchbase/protocol/cmd_decrement.hxx +131 -0
  350. data/ext/couchbase/couchbase/protocol/cmd_exists.cxx +92 -0
  351. data/ext/couchbase/couchbase/protocol/cmd_exists.hxx +121 -0
  352. data/ext/couchbase/couchbase/protocol/cmd_get.cxx +63 -0
  353. data/ext/couchbase/couchbase/protocol/cmd_get.hxx +101 -0
  354. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.cxx +68 -0
  355. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.hxx +117 -0
  356. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.cxx +70 -0
  357. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.hxx +117 -0
  358. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.cxx +84 -0
  359. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.hxx +89 -0
  360. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.cxx +50 -0
  361. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.hxx +98 -0
  362. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.cxx +44 -0
  363. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.hxx +84 -0
  364. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.cxx +59 -0
  365. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.hxx +103 -0
  366. data/ext/couchbase/couchbase/protocol/cmd_get_meta.cxx +74 -0
  367. data/ext/couchbase/couchbase/protocol/cmd_get_meta.hxx +119 -0
  368. data/ext/couchbase/couchbase/protocol/cmd_hello.cxx +66 -0
  369. data/ext/couchbase/couchbase/protocol/cmd_hello.hxx +144 -0
  370. data/ext/couchbase/couchbase/protocol/cmd_increment.cxx +117 -0
  371. data/ext/couchbase/couchbase/protocol/cmd_increment.hxx +131 -0
  372. data/ext/couchbase/couchbase/protocol/cmd_info.hxx +29 -0
  373. data/ext/couchbase/couchbase/protocol/cmd_insert.cxx +92 -0
  374. data/ext/couchbase/couchbase/protocol/cmd_insert.hxx +123 -0
  375. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.cxx +109 -0
  376. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.hxx +165 -0
  377. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.cxx +174 -0
  378. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.hxx +311 -0
  379. data/ext/couchbase/couchbase/protocol/cmd_noop.cxx +36 -0
  380. data/ext/couchbase/couchbase/protocol/cmd_noop.hxx +75 -0
  381. data/ext/couchbase/couchbase/protocol/cmd_prepend.cxx +82 -0
  382. data/ext/couchbase/couchbase/protocol/cmd_prepend.hxx +102 -0
  383. data/ext/couchbase/couchbase/protocol/cmd_remove.cxx +83 -0
  384. data/ext/couchbase/couchbase/protocol/cmd_remove.hxx +93 -0
  385. data/ext/couchbase/couchbase/protocol/cmd_replace.cxx +105 -0
  386. data/ext/couchbase/couchbase/protocol/cmd_replace.hxx +130 -0
  387. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.cxx +40 -0
  388. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.hxx +97 -0
  389. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.cxx +48 -0
  390. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.hxx +82 -0
  391. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.cxx +40 -0
  392. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.hxx +97 -0
  393. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.cxx +36 -0
  394. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.hxx +82 -0
  395. data/ext/couchbase/couchbase/protocol/cmd_touch.cxx +57 -0
  396. data/ext/couchbase/couchbase/protocol/cmd_touch.hxx +84 -0
  397. data/ext/couchbase/couchbase/protocol/cmd_unlock.cxx +48 -0
  398. data/ext/couchbase/couchbase/protocol/cmd_unlock.hxx +81 -0
  399. data/ext/couchbase/couchbase/protocol/cmd_upsert.cxx +104 -0
  400. data/ext/couchbase/couchbase/protocol/cmd_upsert.hxx +125 -0
  401. data/ext/couchbase/couchbase/protocol/datatype.hxx +48 -0
  402. data/ext/couchbase/couchbase/protocol/durability_level.hxx +59 -0
  403. data/ext/couchbase/couchbase/protocol/durability_level_fmt.hxx +52 -0
  404. data/ext/couchbase/{protocol → couchbase/protocol}/enhanced_error_info.hxx +0 -0
  405. data/ext/couchbase/couchbase/protocol/enhanced_error_info_fmt.hxx +44 -0
  406. data/ext/couchbase/couchbase/protocol/frame_info_id.hxx +142 -0
  407. data/ext/couchbase/couchbase/protocol/frame_info_id_fmt.hxx +79 -0
  408. data/ext/couchbase/couchbase/protocol/hello_feature.hxx +186 -0
  409. data/ext/couchbase/couchbase/protocol/hello_feature_fmt.hxx +106 -0
  410. data/ext/couchbase/couchbase/protocol/magic.hxx +53 -0
  411. data/ext/couchbase/couchbase/protocol/magic_fmt.hxx +58 -0
  412. data/ext/couchbase/couchbase/protocol/server_opcode.hxx +39 -0
  413. data/ext/couchbase/couchbase/protocol/server_opcode_fmt.hxx +46 -0
  414. data/ext/couchbase/couchbase/protocol/server_request.hxx +121 -0
  415. data/ext/couchbase/couchbase/protocol/status.cxx +187 -0
  416. data/ext/couchbase/couchbase/protocol/status.hxx +180 -0
  417. data/ext/couchbase/couchbase/protocol/status_fmt.hxx +241 -0
  418. data/ext/couchbase/couchbase/query_profile_mode.hxx +27 -0
  419. data/ext/couchbase/couchbase/query_scan_consistency.hxx +23 -0
  420. data/ext/couchbase/couchbase/sasl/CMakeLists.txt +16 -0
  421. data/ext/couchbase/couchbase/sasl/client.cc +50 -0
  422. data/ext/couchbase/couchbase/sasl/client.h +128 -0
  423. data/ext/couchbase/couchbase/sasl/context.cc +34 -0
  424. data/ext/couchbase/couchbase/sasl/context.h +52 -0
  425. data/ext/couchbase/couchbase/sasl/error.h +28 -0
  426. data/ext/couchbase/couchbase/sasl/error_fmt.h +70 -0
  427. data/ext/couchbase/couchbase/sasl/mechanism.cc +45 -0
  428. data/ext/couchbase/couchbase/sasl/mechanism.h +52 -0
  429. data/ext/couchbase/couchbase/sasl/plain/plain.cc +39 -0
  430. data/ext/couchbase/couchbase/sasl/plain/plain.h +54 -0
  431. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.cc +372 -0
  432. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.h +184 -0
  433. data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.cc +82 -0
  434. data/ext/couchbase/{cbsasl → couchbase/sasl}/scram-sha/stringutils.h +0 -0
  435. data/ext/couchbase/couchbase/search_highlight_style.hxx +23 -0
  436. data/ext/couchbase/couchbase/search_scan_consistency.hxx +23 -0
  437. data/ext/couchbase/couchbase/service_type.hxx +31 -0
  438. data/ext/couchbase/couchbase/service_type_fmt.hxx +61 -0
  439. data/ext/couchbase/couchbase/timeout_defaults.hxx +42 -0
  440. data/ext/couchbase/couchbase/topology/CMakeLists.txt +9 -0
  441. data/ext/couchbase/couchbase/topology/capabilities.hxx +43 -0
  442. data/ext/couchbase/couchbase/topology/capabilities_fmt.hxx +106 -0
  443. data/ext/couchbase/couchbase/topology/collections_manifest.hxx +42 -0
  444. data/ext/couchbase/couchbase/topology/collections_manifest_fmt.hxx +52 -0
  445. data/ext/couchbase/couchbase/topology/collections_manifest_json.hxx +50 -0
  446. data/ext/couchbase/couchbase/topology/configuration.cxx +223 -0
  447. data/ext/couchbase/couchbase/topology/configuration.hxx +120 -0
  448. data/ext/couchbase/couchbase/topology/configuration_fmt.hxx +166 -0
  449. data/ext/couchbase/couchbase/topology/configuration_json.hxx +259 -0
  450. data/ext/couchbase/couchbase/topology/error_map.hxx +149 -0
  451. data/ext/couchbase/couchbase/topology/error_map_fmt.hxx +94 -0
  452. data/ext/couchbase/couchbase/topology/error_map_json.hxx +88 -0
  453. data/ext/couchbase/couchbase/tracing/CMakeLists.txt +9 -0
  454. data/ext/couchbase/couchbase/tracing/constants.hxx +274 -0
  455. data/ext/couchbase/couchbase/tracing/noop_tracer.hxx +55 -0
  456. data/ext/couchbase/couchbase/tracing/request_tracer.hxx +79 -0
  457. data/ext/couchbase/couchbase/tracing/threshold_logging_options.hxx +68 -0
  458. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.cxx +422 -0
  459. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.hxx +49 -0
  460. data/ext/couchbase/couchbase/utils/CMakeLists.txt +17 -0
  461. data/ext/couchbase/couchbase/utils/byteswap.cxx +45 -0
  462. data/ext/couchbase/couchbase/utils/byteswap.hxx +49 -0
  463. data/ext/couchbase/couchbase/utils/connection_string.cxx +420 -0
  464. data/ext/couchbase/couchbase/utils/connection_string.hxx +76 -0
  465. data/ext/couchbase/{utils → couchbase/utils}/crc32.hxx +0 -0
  466. data/ext/couchbase/couchbase/utils/duration_parser.cxx +193 -0
  467. data/ext/couchbase/couchbase/utils/duration_parser.hxx +45 -0
  468. data/ext/couchbase/couchbase/utils/join_strings.hxx +65 -0
  469. data/ext/couchbase/couchbase/utils/json.cxx +71 -0
  470. data/ext/couchbase/couchbase/utils/json.hxx +37 -0
  471. data/ext/couchbase/couchbase/utils/json_stream_control.hxx +32 -0
  472. data/ext/couchbase/couchbase/utils/json_streaming_lexer.cxx +394 -0
  473. data/ext/couchbase/couchbase/utils/json_streaming_lexer.hxx +58 -0
  474. data/ext/couchbase/couchbase/utils/movable_function.hxx +110 -0
  475. data/ext/couchbase/couchbase/utils/name_codec.hxx +41 -0
  476. data/ext/couchbase/couchbase/utils/unsigned_leb128.hxx +181 -0
  477. data/ext/couchbase/couchbase/utils/url_codec.cxx +404 -0
  478. data/ext/couchbase/couchbase/utils/url_codec.hxx +72 -0
  479. data/ext/couchbase/couchbase/view_scan_consistency.hxx +27 -0
  480. data/ext/couchbase/couchbase/view_sort_order.hxx +23 -0
  481. data/ext/couchbase/test/CMakeLists.txt +22 -0
  482. data/ext/couchbase/test/benchmark_helper_integration.hxx +22 -0
  483. data/ext/couchbase/test/benchmark_integration_get.cxx +45 -0
  484. data/ext/couchbase/test/test_helper.hxx +25 -0
  485. data/ext/couchbase/test/test_helper_integration.hxx +24 -0
  486. data/ext/couchbase/test/test_integration_arithmetic.cxx +112 -0
  487. data/ext/couchbase/test/test_integration_binary_operations.cxx +115 -0
  488. data/ext/couchbase/test/test_integration_collections.cxx +176 -0
  489. data/ext/couchbase/test/test_integration_connect.cxx +148 -0
  490. data/ext/couchbase/test/test_integration_crud.cxx +726 -0
  491. data/ext/couchbase/test/test_integration_diagnostics.cxx +365 -0
  492. data/ext/couchbase/test/test_integration_durability.cxx +82 -0
  493. data/ext/couchbase/test/test_integration_management.cxx +2657 -0
  494. data/ext/couchbase/test/test_integration_query.cxx +407 -0
  495. data/ext/couchbase/test/test_integration_subdoc.cxx +893 -0
  496. data/ext/couchbase/test/test_unit_connection_string.cxx +379 -0
  497. data/ext/couchbase/test/test_unit_json_streaming_lexer.cxx +115 -0
  498. data/ext/couchbase/test/test_unit_jsonsl.cxx +511 -0
  499. data/ext/couchbase/test/test_unit_utils.cxx +127 -0
  500. data/ext/couchbase/third_party/asio/asio/include/asio/any_io_executor.hpp +301 -0
  501. data/ext/couchbase/third_party/asio/asio/include/asio/associated_allocator.hpp +177 -0
  502. data/ext/couchbase/third_party/asio/asio/include/asio/associated_cancellation_slot.hpp +177 -0
  503. data/ext/couchbase/third_party/asio/asio/include/asio/associated_executor.hpp +222 -0
  504. data/ext/couchbase/third_party/asio/asio/include/asio/associator.hpp +35 -0
  505. data/ext/couchbase/third_party/asio/asio/include/asio/async_result.hpp +1271 -0
  506. data/ext/couchbase/third_party/asio/asio/include/asio/awaitable.hpp +133 -0
  507. data/ext/couchbase/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +1303 -0
  508. data/ext/couchbase/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +703 -0
  509. data/ext/couchbase/third_party/asio/asio/include/asio/basic_file.hpp +829 -0
  510. data/ext/couchbase/third_party/asio/asio/include/asio/basic_io_object.hpp +290 -0
  511. data/ext/couchbase/third_party/asio/asio/include/asio/basic_random_access_file.hpp +677 -0
  512. data/ext/couchbase/third_party/asio/asio/include/asio/basic_raw_socket.hpp +1294 -0
  513. data/ext/couchbase/third_party/asio/asio/include/asio/basic_readable_pipe.hpp +523 -0
  514. data/ext/couchbase/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +798 -0
  515. data/ext/couchbase/third_party/asio/asio/include/asio/basic_serial_port.hpp +907 -0
  516. data/ext/couchbase/third_party/asio/asio/include/asio/basic_signal_set.hpp +576 -0
  517. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket.hpp +1923 -0
  518. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +2606 -0
  519. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +407 -0
  520. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +687 -0
  521. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_file.hpp +730 -0
  522. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_socket.hpp +1120 -0
  523. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf.hpp +452 -0
  524. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +36 -0
  525. data/ext/couchbase/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +821 -0
  526. data/ext/couchbase/third_party/asio/asio/include/asio/basic_writable_pipe.hpp +519 -0
  527. data/ext/couchbase/third_party/asio/asio/include/asio/bind_cancellation_slot.hpp +721 -0
  528. data/ext/couchbase/third_party/asio/asio/include/asio/bind_executor.hpp +754 -0
  529. data/ext/couchbase/third_party/asio/asio/include/asio/buffer.hpp +2496 -0
  530. data/ext/couchbase/third_party/asio/asio/include/asio/buffer_registration.hpp +327 -0
  531. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream.hpp +253 -0
  532. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +25 -0
  533. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream.hpp +279 -0
  534. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +25 -0
  535. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream.hpp +245 -0
  536. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +25 -0
  537. data/ext/couchbase/third_party/asio/asio/include/asio/buffers_iterator.hpp +521 -0
  538. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_signal.hpp +305 -0
  539. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_state.hpp +235 -0
  540. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_type.hpp +174 -0
  541. data/ext/couchbase/third_party/asio/asio/include/asio/co_spawn.hpp +499 -0
  542. data/ext/couchbase/third_party/asio/asio/include/asio/completion_condition.hpp +218 -0
  543. data/ext/couchbase/third_party/asio/asio/include/asio/compose.hpp +136 -0
  544. data/ext/couchbase/third_party/asio/asio/include/asio/connect.hpp +1136 -0
  545. data/ext/couchbase/third_party/asio/asio/include/asio/connect_pipe.hpp +83 -0
  546. data/ext/couchbase/third_party/asio/asio/include/asio/coroutine.hpp +328 -0
  547. data/ext/couchbase/third_party/asio/asio/include/asio/deadline_timer.hpp +38 -0
  548. data/ext/couchbase/third_party/asio/asio/include/asio/defer.hpp +130 -0
  549. data/ext/couchbase/third_party/asio/asio/include/asio/detached.hpp +112 -0
  550. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array.hpp +38 -0
  551. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array_fwd.hpp +34 -0
  552. data/ext/couchbase/third_party/asio/asio/include/asio/detail/assert.hpp +32 -0
  553. data/ext/couchbase/third_party/asio/asio/include/asio/detail/atomic_count.hpp +67 -0
  554. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +163 -0
  555. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +69 -0
  556. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bind_handler.hpp +1071 -0
  557. data/ext/couchbase/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  558. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +66 -0
  559. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +841 -0
  560. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +126 -0
  561. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  562. data/ext/couchbase/third_party/asio/asio/include/asio/detail/call_stack.hpp +125 -0
  563. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono.hpp +66 -0
  564. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +190 -0
  565. data/ext/couchbase/third_party/asio/asio/include/asio/detail/completion_handler.hpp +88 -0
  566. data/ext/couchbase/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +94 -0
  567. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +120 -0
  568. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +149 -0
  569. data/ext/couchbase/third_party/asio/asio/include/asio/detail/config.hpp +1998 -0
  570. data/ext/couchbase/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +451 -0
  571. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstddef.hpp +31 -0
  572. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstdint.hpp +62 -0
  573. data/ext/couchbase/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +34 -0
  574. data/ext/couchbase/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +335 -0
  575. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dependent_type.hpp +36 -0
  576. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +179 -0
  577. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +148 -0
  578. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +148 -0
  579. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +230 -0
  580. data/ext/couchbase/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +278 -0
  581. data/ext/couchbase/third_party/asio/asio/include/asio/detail/event.hpp +48 -0
  582. data/ext/couchbase/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +83 -0
  583. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_function.hpp +204 -0
  584. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_op.hpp +84 -0
  585. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +39 -0
  586. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fenced_block.hpp +80 -0
  587. data/ext/couchbase/third_party/asio/asio/include/asio/detail/functional.hpp +44 -0
  588. data/ext/couchbase/third_party/asio/asio/include/asio/detail/future.hpp +33 -0
  589. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  590. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  591. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  592. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  593. data/ext/couchbase/third_party/asio/asio/include/asio/detail/global.hpp +52 -0
  594. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +288 -0
  595. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +45 -0
  596. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +80 -0
  597. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +264 -0
  598. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +559 -0
  599. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_work.hpp +525 -0
  600. data/ext/couchbase/third_party/asio/asio/include/asio/detail/hash_map.hpp +331 -0
  601. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +118 -0
  602. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +933 -0
  603. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +111 -0
  604. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +460 -0
  605. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +109 -0
  606. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +817 -0
  607. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +171 -0
  608. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +396 -0
  609. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +202 -0
  610. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +131 -0
  611. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.hpp +112 -0
  612. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.ipp +879 -0
  613. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +249 -0
  614. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +113 -0
  615. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +599 -0
  616. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +74 -0
  617. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +129 -0
  618. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +63 -0
  619. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +46 -0
  620. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +149 -0
  621. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +84 -0
  622. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +46 -0
  623. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +225 -0
  624. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +302 -0
  625. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +158 -0
  626. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +674 -0
  627. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +124 -0
  628. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +357 -0
  629. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +94 -0
  630. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +197 -0
  631. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +746 -0
  632. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +3964 -0
  633. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +185 -0
  634. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +354 -0
  635. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +158 -0
  636. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +87 -0
  637. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +202 -0
  638. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/thread_context.ipp +35 -0
  639. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +66 -0
  640. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +97 -0
  641. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +101 -0
  642. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +76 -0
  643. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +250 -0
  644. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +525 -0
  645. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +120 -0
  646. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +608 -0
  647. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +192 -0
  648. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +821 -0
  649. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +84 -0
  650. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +448 -0
  651. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +136 -0
  652. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +150 -0
  653. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +57 -0
  654. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +626 -0
  655. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +92 -0
  656. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +121 -0
  657. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +82 -0
  658. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_control.hpp +84 -0
  659. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +172 -0
  660. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +190 -0
  661. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +185 -0
  662. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +661 -0
  663. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +184 -0
  664. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +180 -0
  665. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_file_service.hpp +251 -0
  666. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +111 -0
  667. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_operation.hpp +84 -0
  668. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_service.hpp +318 -0
  669. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +277 -0
  670. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +137 -0
  671. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +200 -0
  672. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +201 -0
  673. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +187 -0
  674. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +186 -0
  675. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +189 -0
  676. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service.hpp +613 -0
  677. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +663 -0
  678. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_wait_op.hpp +109 -0
  679. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +338 -0
  680. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_executor.hpp +126 -0
  681. data/ext/couchbase/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +70 -0
  682. data/ext/couchbase/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +254 -0
  683. data/ext/{third_party → couchbase/third_party}/asio/asio/include/asio/detail/limits.hpp +0 -0
  684. data/ext/couchbase/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +59 -0
  685. data/ext/couchbase/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +62 -0
  686. data/ext/couchbase/third_party/asio/asio/include/asio/detail/memory.hpp +133 -0
  687. data/ext/couchbase/third_party/asio/asio/include/asio/detail/mutex.hpp +48 -0
  688. data/ext/couchbase/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +54 -0
  689. data/ext/couchbase/third_party/asio/asio/include/asio/detail/noncopyable.hpp +43 -0
  690. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_event.hpp +106 -0
  691. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +47 -0
  692. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_global.hpp +59 -0
  693. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_mutex.hpp +60 -0
  694. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_reactor.hpp +83 -0
  695. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +69 -0
  696. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +519 -0
  697. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +60 -0
  698. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_thread.hpp +67 -0
  699. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +68 -0
  700. data/ext/couchbase/third_party/asio/asio/include/asio/detail/object_pool.hpp +171 -0
  701. data/ext/couchbase/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +214 -0
  702. data/ext/couchbase/third_party/asio/asio/include/asio/detail/op_queue.hpp +162 -0
  703. data/ext/couchbase/third_party/asio/asio/include/asio/detail/operation.hpp +38 -0
  704. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +89 -0
  705. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pop_options.hpp +153 -0
  706. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_event.hpp +175 -0
  707. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +118 -0
  708. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_global.hpp +80 -0
  709. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +76 -0
  710. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_serial_port_service.hpp +248 -0
  711. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +85 -0
  712. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +64 -0
  713. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_thread.hpp +109 -0
  714. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +79 -0
  715. data/ext/couchbase/third_party/asio/asio/include/asio/detail/push_options.hpp +219 -0
  716. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +511 -0
  717. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +98 -0
  718. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +242 -0
  719. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +123 -0
  720. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +159 -0
  721. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +164 -0
  722. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +145 -0
  723. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +162 -0
  724. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +156 -0
  725. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +607 -0
  726. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +654 -0
  727. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +98 -0
  728. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor.hpp +54 -0
  729. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op.hpp +71 -0
  730. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +212 -0
  731. data/ext/couchbase/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +105 -0
  732. data/ext/couchbase/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +44 -0
  733. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +140 -0
  734. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_op.hpp +45 -0
  735. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +150 -0
  736. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service.hpp +145 -0
  737. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +158 -0
  738. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler.hpp +241 -0
  739. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +78 -0
  740. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_task.hpp +49 -0
  741. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +40 -0
  742. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +101 -0
  743. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +87 -0
  744. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +46 -0
  745. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_reactor.hpp +252 -0
  746. data/ext/couchbase/third_party/asio/asio/include/asio/detail/service_registry.hpp +164 -0
  747. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +44 -0
  748. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_handler.hpp +90 -0
  749. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_init.hpp +47 -0
  750. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_op.hpp +49 -0
  751. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +241 -0
  752. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_holder.hpp +98 -0
  753. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_ops.hpp +383 -0
  754. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_option.hpp +316 -0
  755. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +91 -0
  756. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_types.hpp +417 -0
  757. data/ext/couchbase/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +62 -0
  758. data/ext/couchbase/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  759. data/ext/couchbase/third_party/asio/asio/include/asio/detail/static_mutex.hpp +52 -0
  760. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_event.hpp +188 -0
  761. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +62 -0
  762. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_global.hpp +70 -0
  763. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_mutex.hpp +73 -0
  764. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +81 -0
  765. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_thread.hpp +71 -0
  766. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +173 -0
  767. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_service.hpp +144 -0
  768. data/ext/couchbase/third_party/asio/asio/include/asio/detail/string_view.hpp +47 -0
  769. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread.hpp +60 -0
  770. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_context.hpp +51 -0
  771. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_group.hpp +99 -0
  772. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +260 -0
  773. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_error.hpp +53 -0
  774. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_exception.hpp +51 -0
  775. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue.hpp +389 -0
  776. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +68 -0
  777. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +103 -0
  778. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +66 -0
  779. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +37 -0
  780. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +42 -0
  781. data/ext/couchbase/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +69 -0
  782. data/ext/couchbase/third_party/asio/asio/include/asio/detail/type_traits.hpp +156 -0
  783. data/ext/couchbase/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +294 -0
  784. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_handler.hpp +90 -0
  785. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_op.hpp +49 -0
  786. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_event.hpp +164 -0
  787. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +149 -0
  788. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +90 -0
  789. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_global.hpp +71 -0
  790. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_file_service.hpp +280 -0
  791. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +117 -0
  792. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +403 -0
  793. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +110 -0
  794. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +345 -0
  795. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +127 -0
  796. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +96 -0
  797. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +96 -0
  798. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +171 -0
  799. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +232 -0
  800. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +338 -0
  801. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +135 -0
  802. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +124 -0
  803. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +133 -0
  804. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +125 -0
  805. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +118 -0
  806. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +659 -0
  807. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +832 -0
  808. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +34 -0
  809. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +128 -0
  810. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_mutex.hpp +78 -0
  811. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +195 -0
  812. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +74 -0
  813. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_thread.hpp +147 -0
  814. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +79 -0
  815. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +124 -0
  816. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wince_thread.hpp +124 -0
  817. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +305 -0
  818. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +65 -0
  819. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +125 -0
  820. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +212 -0
  821. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +98 -0
  822. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +119 -0
  823. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +110 -0
  824. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +250 -0
  825. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +362 -0
  826. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +147 -0
  827. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +106 -0
  828. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winsock_init.hpp +128 -0
  829. data/ext/couchbase/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +151 -0
  830. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +327 -0
  831. data/ext/couchbase/third_party/asio/asio/include/asio/dispatch.hpp +121 -0
  832. data/ext/couchbase/third_party/asio/asio/include/asio/error.hpp +356 -0
  833. data/ext/couchbase/third_party/asio/asio/include/asio/error_code.hpp +202 -0
  834. data/ext/couchbase/third_party/asio/asio/include/asio/execution/allocator.hpp +337 -0
  835. data/ext/couchbase/third_party/asio/asio/include/asio/execution/any_executor.hpp +2351 -0
  836. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  837. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking.hpp +1551 -0
  838. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1212 -0
  839. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +397 -0
  840. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1215 -0
  841. data/ext/couchbase/third_party/asio/asio/include/asio/execution/connect.hpp +489 -0
  842. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context.hpp +233 -0
  843. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context_as.hpp +221 -0
  844. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  845. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  846. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  847. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  848. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  849. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  850. data/ext/couchbase/third_party/asio/asio/include/asio/execution/execute.hpp +283 -0
  851. data/ext/couchbase/third_party/asio/asio/include/asio/execution/executor.hpp +252 -0
  852. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  853. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  854. data/ext/couchbase/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  855. data/ext/couchbase/third_party/asio/asio/include/asio/execution/mapping.hpp +1116 -0
  856. data/ext/couchbase/third_party/asio/asio/include/asio/execution/occupancy.hpp +226 -0
  857. data/ext/couchbase/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  858. data/ext/couchbase/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +867 -0
  859. data/ext/couchbase/third_party/asio/asio/include/asio/execution/prefer_only.hpp +331 -0
  860. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  861. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  862. data/ext/couchbase/third_party/asio/asio/include/asio/execution/relationship.hpp +865 -0
  863. data/ext/couchbase/third_party/asio/asio/include/asio/execution/schedule.hpp +287 -0
  864. data/ext/couchbase/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  865. data/ext/couchbase/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  866. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_done.hpp +250 -0
  867. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_error.hpp +250 -0
  868. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_value.hpp +483 -0
  869. data/ext/couchbase/third_party/asio/asio/include/asio/execution/start.hpp +247 -0
  870. data/ext/couchbase/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  871. data/ext/couchbase/third_party/asio/asio/include/asio/execution.hpp +48 -0
  872. data/ext/couchbase/third_party/asio/asio/include/asio/execution_context.hpp +412 -0
  873. data/ext/couchbase/third_party/asio/asio/include/asio/executor.hpp +347 -0
  874. data/ext/couchbase/third_party/asio/asio/include/asio/executor_work_guard.hpp +302 -0
  875. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/append.hpp +71 -0
  876. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_single.hpp +135 -0
  877. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_tuple.hpp +131 -0
  878. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/awaitable_operators.hpp +536 -0
  879. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_channel.hpp +415 -0
  880. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +424 -0
  881. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/cancellation_condition.hpp +155 -0
  882. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel.hpp +70 -0
  883. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_error.hpp +84 -0
  884. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_traits.hpp +231 -0
  885. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/co_spawn.hpp +191 -0
  886. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/concurrent_channel.hpp +70 -0
  887. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro.hpp +263 -0
  888. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro_traits.hpp +228 -0
  889. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/deferred.hpp +605 -0
  890. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_handler.hpp +70 -0
  891. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_message.hpp +122 -0
  892. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_operation.hpp +199 -0
  893. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_payload.hpp +93 -0
  894. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +112 -0
  895. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +131 -0
  896. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +140 -0
  897. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_service.hpp +497 -0
  898. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/completion_handler_erasure.hpp +158 -0
  899. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +118 -0
  900. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/has_signature.hpp +54 -0
  901. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +611 -0
  902. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/partial_promise.hpp +176 -0
  903. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/append.hpp +217 -0
  904. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_single.hpp +229 -0
  905. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_tuple.hpp +246 -0
  906. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/channel_error.ipp +61 -0
  907. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/coro.hpp +1204 -0
  908. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/deferred.hpp +104 -0
  909. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/parallel_group.hpp +432 -0
  910. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/prepend.hpp +217 -0
  911. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/promise.hpp +102 -0
  912. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/use_coro.hpp +267 -0
  913. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/parallel_group.hpp +215 -0
  914. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/prepend.hpp +71 -0
  915. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/promise.hpp +610 -0
  916. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/use_coro.hpp +169 -0
  917. data/ext/couchbase/third_party/asio/asio/include/asio/file_base.hpp +160 -0
  918. data/ext/couchbase/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +193 -0
  919. data/ext/couchbase/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +123 -0
  920. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +133 -0
  921. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +110 -0
  922. data/ext/couchbase/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +121 -0
  923. data/ext/couchbase/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +122 -0
  924. data/ext/couchbase/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +127 -0
  925. data/ext/couchbase/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +104 -0
  926. data/ext/couchbase/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +54 -0
  927. data/ext/couchbase/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +111 -0
  928. data/ext/couchbase/third_party/asio/asio/include/asio/high_resolution_timer.hpp +44 -0
  929. data/ext/couchbase/third_party/asio/asio/include/asio/impl/any_io_executor.ipp +124 -0
  930. data/ext/couchbase/third_party/asio/asio/include/asio/impl/awaitable.hpp +760 -0
  931. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +498 -0
  932. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +478 -0
  933. data/ext/couchbase/third_party/asio/asio/include/asio/impl/cancellation_signal.ipp +96 -0
  934. data/ext/couchbase/third_party/asio/asio/include/asio/impl/co_spawn.hpp +346 -0
  935. data/ext/couchbase/third_party/asio/asio/include/asio/impl/compose.hpp +707 -0
  936. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect.hpp +905 -0
  937. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.hpp +73 -0
  938. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.ipp +149 -0
  939. data/ext/couchbase/third_party/asio/asio/include/asio/impl/defer.hpp +256 -0
  940. data/ext/couchbase/third_party/asio/asio/include/asio/impl/detached.hpp +130 -0
  941. data/ext/couchbase/third_party/asio/asio/include/asio/impl/dispatch.hpp +251 -0
  942. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error.ipp +128 -0
  943. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error_code.ipp +206 -0
  944. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.hpp +109 -0
  945. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.ipp +82 -0
  946. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.hpp +300 -0
  947. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.ipp +43 -0
  948. data/ext/couchbase/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +62 -0
  949. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.hpp +444 -0
  950. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.ipp +175 -0
  951. data/ext/couchbase/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  952. data/ext/couchbase/third_party/asio/asio/include/asio/impl/post.hpp +256 -0
  953. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read.hpp +1199 -0
  954. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_at.hpp +733 -0
  955. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_until.hpp +3315 -0
  956. data/ext/couchbase/third_party/asio/asio/include/asio/impl/redirect_error.hpp +609 -0
  957. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +59 -0
  958. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +554 -0
  959. data/ext/couchbase/third_party/asio/asio/include/asio/impl/spawn.hpp +517 -0
  960. data/ext/couchbase/third_party/asio/asio/include/asio/impl/src.hpp +95 -0
  961. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.hpp +34 -0
  962. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.ipp +92 -0
  963. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_executor.hpp +185 -0
  964. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.hpp +354 -0
  965. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.ipp +141 -0
  966. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +291 -0
  967. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_future.hpp +1028 -0
  968. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write.hpp +1100 -0
  969. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write_at.hpp +644 -0
  970. data/ext/couchbase/third_party/asio/asio/include/asio/io_context.hpp +1560 -0
  971. data/ext/couchbase/third_party/asio/asio/include/asio/io_context_strand.hpp +376 -0
  972. data/ext/couchbase/third_party/asio/asio/include/asio/io_service.hpp +33 -0
  973. data/ext/couchbase/third_party/asio/asio/include/asio/io_service_strand.hpp +20 -0
  974. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address.hpp +290 -0
  975. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4.hpp +355 -0
  976. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +162 -0
  977. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +134 -0
  978. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6.hpp +382 -0
  979. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +183 -0
  980. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +129 -0
  981. data/ext/couchbase/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +53 -0
  982. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +291 -0
  983. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +1076 -0
  984. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +113 -0
  985. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +192 -0
  986. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +244 -0
  987. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +311 -0
  988. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +141 -0
  989. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +199 -0
  990. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +566 -0
  991. data/ext/couchbase/third_party/asio/asio/include/asio/ip/host_name.hpp +42 -0
  992. data/ext/couchbase/third_party/asio/asio/include/asio/ip/icmp.hpp +115 -0
  993. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.hpp +67 -0
  994. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.ipp +239 -0
  995. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +67 -0
  996. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +210 -0
  997. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +67 -0
  998. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +350 -0
  999. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +43 -0
  1000. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +54 -0
  1001. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +54 -0
  1002. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +216 -0
  1003. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +53 -0
  1004. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +185 -0
  1005. data/ext/couchbase/third_party/asio/asio/include/asio/ip/multicast.hpp +191 -0
  1006. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v4.hpp +261 -0
  1007. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v6.hpp +235 -0
  1008. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_base.hpp +129 -0
  1009. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +43 -0
  1010. data/ext/couchbase/third_party/asio/asio/include/asio/ip/tcp.hpp +155 -0
  1011. data/ext/couchbase/third_party/asio/asio/include/asio/ip/udp.hpp +111 -0
  1012. data/ext/couchbase/third_party/asio/asio/include/asio/ip/unicast.hpp +70 -0
  1013. data/ext/couchbase/third_party/asio/asio/include/asio/ip/v6_only.hpp +69 -0
  1014. data/ext/couchbase/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  1015. data/ext/couchbase/third_party/asio/asio/include/asio/is_executor.hpp +46 -0
  1016. data/ext/couchbase/third_party/asio/asio/include/asio/is_read_buffered.hpp +59 -0
  1017. data/ext/couchbase/third_party/asio/asio/include/asio/is_write_buffered.hpp +59 -0
  1018. data/ext/couchbase/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +247 -0
  1019. data/ext/couchbase/third_party/asio/asio/include/asio/local/connect_pair.hpp +101 -0
  1020. data/ext/couchbase/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +80 -0
  1021. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +139 -0
  1022. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +131 -0
  1023. data/ext/couchbase/third_party/asio/asio/include/asio/local/stream_protocol.hpp +90 -0
  1024. data/ext/couchbase/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  1025. data/ext/couchbase/third_party/asio/asio/include/asio/packaged_task.hpp +126 -0
  1026. data/ext/couchbase/third_party/asio/asio/include/asio/placeholders.hpp +151 -0
  1027. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +720 -0
  1028. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +501 -0
  1029. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor.hpp +37 -0
  1030. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +90 -0
  1031. data/ext/couchbase/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +37 -0
  1032. data/ext/couchbase/third_party/asio/asio/include/asio/post.hpp +126 -0
  1033. data/ext/couchbase/third_party/asio/asio/include/asio/prefer.hpp +734 -0
  1034. data/ext/couchbase/third_party/asio/asio/include/asio/query.hpp +324 -0
  1035. data/ext/couchbase/third_party/asio/asio/include/asio/random_access_file.hpp +35 -0
  1036. data/ext/couchbase/third_party/asio/asio/include/asio/read.hpp +1388 -0
  1037. data/ext/couchbase/third_party/asio/asio/include/asio/read_at.hpp +738 -0
  1038. data/ext/couchbase/third_party/asio/asio/include/asio/read_until.hpp +3031 -0
  1039. data/ext/couchbase/third_party/asio/asio/include/asio/readable_pipe.hpp +35 -0
  1040. data/ext/couchbase/third_party/asio/asio/include/asio/redirect_error.hpp +66 -0
  1041. data/ext/couchbase/third_party/asio/asio/include/asio/registered_buffer.hpp +356 -0
  1042. data/ext/couchbase/third_party/asio/asio/include/asio/require.hpp +571 -0
  1043. data/ext/couchbase/third_party/asio/asio/include/asio/require_concept.hpp +352 -0
  1044. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port.hpp +36 -0
  1045. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port_base.hpp +167 -0
  1046. data/ext/couchbase/third_party/asio/asio/include/asio/signal_set.hpp +28 -0
  1047. data/ext/couchbase/third_party/asio/asio/include/asio/socket_base.hpp +559 -0
  1048. data/ext/couchbase/third_party/asio/asio/include/asio/spawn.hpp +344 -0
  1049. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context.hpp +761 -0
  1050. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context_base.hpp +209 -0
  1051. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +119 -0
  1052. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +170 -0
  1053. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +67 -0
  1054. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +363 -0
  1055. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +165 -0
  1056. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/io.hpp +425 -0
  1057. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +101 -0
  1058. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +34 -0
  1059. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +66 -0
  1060. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +72 -0
  1061. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +69 -0
  1062. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +206 -0
  1063. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +62 -0
  1064. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +76 -0
  1065. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/error.hpp +125 -0
  1066. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +90 -0
  1067. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.hpp +67 -0
  1068. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.ipp +1245 -0
  1069. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/error.ipp +102 -0
  1070. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +73 -0
  1071. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +164 -0
  1072. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/src.hpp +29 -0
  1073. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +98 -0
  1074. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream.hpp +972 -0
  1075. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream_base.hpp +52 -0
  1076. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_context.hpp +67 -0
  1077. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +63 -0
  1078. data/ext/couchbase/third_party/asio/asio/include/asio/ssl.hpp +28 -0
  1079. data/ext/couchbase/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  1080. data/ext/couchbase/third_party/asio/asio/include/asio/steady_timer.hpp +42 -0
  1081. data/ext/couchbase/third_party/asio/asio/include/asio/strand.hpp +569 -0
  1082. data/ext/couchbase/third_party/asio/asio/include/asio/stream_file.hpp +35 -0
  1083. data/ext/couchbase/third_party/asio/asio/include/asio/streambuf.hpp +33 -0
  1084. data/ext/couchbase/third_party/asio/asio/include/asio/system_context.hpp +90 -0
  1085. data/ext/couchbase/third_party/asio/asio/include/asio/system_error.hpp +131 -0
  1086. data/ext/couchbase/third_party/asio/asio/include/asio/system_executor.hpp +684 -0
  1087. data/ext/couchbase/third_party/asio/asio/include/asio/system_timer.hpp +42 -0
  1088. data/ext/couchbase/third_party/asio/asio/include/asio/this_coro.hpp +280 -0
  1089. data/ext/couchbase/third_party/asio/asio/include/asio/thread.hpp +92 -0
  1090. data/ext/couchbase/third_party/asio/asio/include/asio/thread_pool.hpp +1140 -0
  1091. data/ext/couchbase/third_party/asio/asio/include/asio/time_traits.hpp +86 -0
  1092. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  1093. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  1094. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  1095. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  1096. data/ext/couchbase/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +104 -0
  1097. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  1098. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  1099. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  1100. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  1101. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  1102. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  1103. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  1104. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  1105. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  1106. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  1107. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  1108. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  1109. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  1110. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  1111. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  1112. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  1113. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  1114. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  1115. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  1116. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  1117. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  1118. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  1119. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  1120. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +124 -0
  1121. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  1122. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  1123. data/ext/couchbase/third_party/asio/asio/include/asio/ts/buffer.hpp +24 -0
  1124. data/ext/couchbase/third_party/asio/asio/include/asio/ts/executor.hpp +35 -0
  1125. data/ext/couchbase/third_party/asio/asio/include/asio/ts/internet.hpp +40 -0
  1126. data/ext/couchbase/third_party/asio/asio/include/asio/ts/io_context.hpp +20 -0
  1127. data/ext/couchbase/third_party/asio/asio/include/asio/ts/net.hpp +26 -0
  1128. data/ext/couchbase/third_party/asio/asio/include/asio/ts/netfwd.hpp +254 -0
  1129. data/ext/couchbase/third_party/asio/asio/include/asio/ts/socket.hpp +27 -0
  1130. data/ext/couchbase/third_party/asio/asio/include/asio/ts/timer.hpp +26 -0
  1131. data/ext/couchbase/third_party/asio/asio/include/asio/unyield.hpp +21 -0
  1132. data/ext/couchbase/third_party/asio/asio/include/asio/use_awaitable.hpp +166 -0
  1133. data/ext/couchbase/third_party/asio/asio/include/asio/use_future.hpp +160 -0
  1134. data/ext/couchbase/third_party/asio/asio/include/asio/uses_executor.hpp +71 -0
  1135. data/ext/couchbase/third_party/asio/asio/include/asio/version.hpp +23 -0
  1136. data/ext/couchbase/third_party/asio/asio/include/asio/wait_traits.hpp +56 -0
  1137. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +435 -0
  1138. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +361 -0
  1139. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +510 -0
  1140. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +494 -0
  1141. data/ext/couchbase/third_party/asio/asio/include/asio/windows/object_handle.hpp +38 -0
  1142. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +39 -0
  1143. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +145 -0
  1144. data/ext/couchbase/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +37 -0
  1145. data/ext/couchbase/third_party/asio/asio/include/asio/windows/stream_handle.hpp +37 -0
  1146. data/ext/couchbase/third_party/asio/asio/include/asio/writable_pipe.hpp +35 -0
  1147. data/ext/couchbase/third_party/asio/asio/include/asio/write.hpp +1346 -0
  1148. data/ext/couchbase/third_party/asio/asio/include/asio/write_at.hpp +746 -0
  1149. data/ext/couchbase/third_party/asio/asio/include/asio/yield.hpp +23 -0
  1150. data/ext/couchbase/third_party/asio/asio/include/asio.hpp +201 -0
  1151. data/ext/couchbase/third_party/fmt/CMakeLists.txt +410 -0
  1152. data/ext/couchbase/third_party/fmt/ChangeLog.rst +4364 -0
  1153. data/ext/{third_party/spdlog/include/spdlog/fmt/bundled → couchbase/third_party/fmt}/LICENSE.rst +0 -0
  1154. data/ext/couchbase/third_party/fmt/README.rst +528 -0
  1155. data/ext/couchbase/third_party/fmt/include/fmt/args.h +244 -0
  1156. data/ext/couchbase/third_party/fmt/include/fmt/chrono.h +2055 -0
  1157. data/ext/couchbase/third_party/fmt/include/fmt/color.h +638 -0
  1158. data/ext/couchbase/third_party/fmt/include/fmt/compile.h +642 -0
  1159. data/ext/couchbase/third_party/fmt/include/fmt/core.h +3217 -0
  1160. data/ext/couchbase/third_party/fmt/include/fmt/format-inl.h +2637 -0
  1161. data/ext/couchbase/third_party/fmt/include/fmt/format.h +3120 -0
  1162. data/ext/couchbase/third_party/fmt/include/fmt/locale.h +2 -0
  1163. data/ext/couchbase/third_party/fmt/include/fmt/os.h +527 -0
  1164. data/ext/couchbase/third_party/fmt/include/fmt/ostream.h +135 -0
  1165. data/ext/couchbase/third_party/fmt/include/fmt/printf.h +657 -0
  1166. data/ext/couchbase/third_party/fmt/include/fmt/ranges.h +742 -0
  1167. data/ext/couchbase/third_party/fmt/include/fmt/xchar.h +236 -0
  1168. data/ext/couchbase/third_party/fmt/src/fmt.cc +99 -0
  1169. data/ext/couchbase/third_party/fmt/src/format.cc +124 -0
  1170. data/ext/couchbase/third_party/fmt/src/os.cc +361 -0
  1171. data/ext/couchbase/third_party/fmt/support/cmake/FindSetEnv.cmake +7 -0
  1172. data/ext/couchbase/third_party/fmt/support/cmake/JoinPaths.cmake +26 -0
  1173. data/ext/couchbase/third_party/fmt/support/cmake/cxx14.cmake +70 -0
  1174. data/ext/couchbase/third_party/fmt/support/cmake/fmt-config.cmake.in +4 -0
  1175. data/ext/couchbase/third_party/fmt/support/cmake/fmt.pc.in +11 -0
  1176. data/ext/couchbase/third_party/gsl/CMakeLists.txt +61 -0
  1177. data/ext/{third_party → couchbase/third_party}/gsl/LICENSE +0 -0
  1178. data/ext/{third_party → couchbase/third_party}/gsl/ThirdPartyNotices.txt +0 -0
  1179. data/ext/couchbase/third_party/gsl/cmake/guidelineSupportLibrary.cmake +116 -0
  1180. data/ext/couchbase/third_party/gsl/include/CMakeLists.txt +20 -0
  1181. data/ext/couchbase/third_party/gsl/include/gsl/algorithm +63 -0
  1182. data/ext/couchbase/third_party/gsl/include/gsl/assert +136 -0
  1183. data/ext/couchbase/third_party/gsl/include/gsl/byte +213 -0
  1184. data/ext/couchbase/third_party/gsl/include/gsl/gsl +32 -0
  1185. data/ext/couchbase/third_party/gsl/include/gsl/gsl_algorithm +4 -0
  1186. data/ext/couchbase/third_party/gsl/include/gsl/gsl_assert +3 -0
  1187. data/ext/couchbase/third_party/gsl/include/gsl/gsl_byte +3 -0
  1188. data/ext/couchbase/third_party/gsl/include/gsl/gsl_narrow +3 -0
  1189. data/ext/couchbase/third_party/gsl/include/gsl/gsl_util +3 -0
  1190. data/ext/couchbase/third_party/gsl/include/gsl/narrow +66 -0
  1191. data/ext/couchbase/third_party/gsl/include/gsl/pointers +323 -0
  1192. data/ext/couchbase/third_party/gsl/include/gsl/span +821 -0
  1193. data/ext/couchbase/third_party/gsl/include/gsl/span_ext +212 -0
  1194. data/ext/couchbase/third_party/gsl/include/gsl/string_span +767 -0
  1195. data/ext/couchbase/third_party/gsl/include/gsl/util +157 -0
  1196. data/ext/couchbase/third_party/hdr_histogram_c/CMakeLists.txt +84 -0
  1197. data/ext/couchbase/third_party/hdr_histogram_c/COPYING.txt +121 -0
  1198. data/ext/couchbase/third_party/hdr_histogram_c/LICENSE.txt +41 -0
  1199. data/ext/couchbase/third_party/hdr_histogram_c/config.cmake.in +6 -0
  1200. data/ext/couchbase/third_party/hdr_histogram_c/src/CMakeLists.txt +83 -0
  1201. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_atomic.h +146 -0
  1202. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_encoding.c +322 -0
  1203. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_encoding.h +79 -0
  1204. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_endian.h +116 -0
  1205. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram.c +1211 -0
  1206. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram.h +516 -0
  1207. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram_log.c +1290 -0
  1208. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram_log.h +236 -0
  1209. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram_log_no_op.c +171 -0
  1210. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_interval_recorder.c +227 -0
  1211. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_interval_recorder.h +109 -0
  1212. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_malloc.h +19 -0
  1213. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_tests.h +22 -0
  1214. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_thread.c +108 -0
  1215. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_thread.h +55 -0
  1216. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_time.c +98 -0
  1217. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_time.h +49 -0
  1218. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_writer_reader_phaser.c +143 -0
  1219. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_writer_reader_phaser.h +51 -0
  1220. data/ext/{third_party → couchbase/third_party}/http_parser/LICENSE-MIT +0 -0
  1221. data/ext/{third_party → couchbase/third_party}/http_parser/http_parser.c +0 -0
  1222. data/ext/{third_party → couchbase/third_party}/http_parser/http_parser.h +0 -0
  1223. data/ext/couchbase/third_party/json/CMakeLists.txt +90 -0
  1224. data/ext/couchbase/third_party/json/LICENSE +21 -0
  1225. data/ext/{third_party → couchbase/third_party}/json/LICENSE.double-conversion +0 -0
  1226. data/ext/{third_party → couchbase/third_party}/json/LICENSE.itoa +0 -0
  1227. data/ext/{third_party → couchbase/third_party}/json/LICENSE.ryu +0 -0
  1228. data/ext/couchbase/third_party/json/external/PEGTL/.cmake/pegtl-config.cmake.in +4 -0
  1229. data/ext/couchbase/third_party/json/external/PEGTL/.cmake/test_filesystem.cpp.in +22 -0
  1230. data/ext/couchbase/third_party/json/external/PEGTL/CMakeLists.txt +155 -0
  1231. data/ext/couchbase/third_party/json/external/PEGTL/LICENSE +21 -0
  1232. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/apply_mode.hpp +19 -0
  1233. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/argv_input.hpp +49 -0
  1234. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/ascii.hpp +54 -0
  1235. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/buffer_input.hpp +226 -0
  1236. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action.hpp +38 -0
  1237. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_state.hpp +71 -0
  1238. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_states.hpp +62 -0
  1239. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_control.hpp +36 -0
  1240. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_state.hpp +69 -0
  1241. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_states.hpp +61 -0
  1242. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/config.hpp +11 -0
  1243. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/abnf.hpp +35 -0
  1244. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/add_state.hpp +69 -0
  1245. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/alphabet.hpp +67 -0
  1246. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze.hpp +189 -0
  1247. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze_traits.hpp +277 -0
  1248. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/check_bytes.hpp +55 -0
  1249. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/control_action.hpp +81 -0
  1250. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/coverage.hpp +151 -0
  1251. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/forward.hpp +16 -0
  1252. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/function.hpp +52 -0
  1253. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/http.hpp +277 -0
  1254. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/internal.hpp +98 -0
  1255. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf16.hpp +196 -0
  1256. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf32.hpp +196 -0
  1257. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf8.hpp +103 -0
  1258. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/if_then.hpp +56 -0
  1259. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/instantiate.hpp +38 -0
  1260. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/integer.hpp +468 -0
  1261. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian.hpp +77 -0
  1262. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_gcc.hpp +198 -0
  1263. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_win.hpp +102 -0
  1264. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint.hpp +54 -0
  1265. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint8.hpp +33 -0
  1266. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint.hpp +45 -0
  1267. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint8.hpp +32 -0
  1268. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf16.hpp +54 -0
  1269. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf32.hpp +43 -0
  1270. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/read_uint.hpp +77 -0
  1271. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  1272. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/vector_stack_guard.hpp +45 -0
  1273. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/iri.hpp +106 -0
  1274. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json.hpp +91 -0
  1275. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp +33 -0
  1276. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_bytes.hpp +88 -0
  1277. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_depth.hpp +83 -0
  1278. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree.hpp +443 -0
  1279. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree_to_dot.hpp +111 -0
  1280. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/peg.hpp +121 -0
  1281. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/predicates.hpp +126 -0
  1282. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print.hpp +75 -0
  1283. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print_coverage.hpp +53 -0
  1284. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/proto3.hpp +142 -0
  1285. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/raw_string.hpp +232 -0
  1286. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_first_state.hpp +72 -0
  1287. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_last_states.hpp +121 -0
  1288. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_one_min_max.hpp +100 -0
  1289. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_string.hpp +43 -0
  1290. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/separated_seq.hpp +45 -0
  1291. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/shuffle_states.hpp +193 -0
  1292. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/state_control.hpp +122 -0
  1293. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/to_string.hpp +38 -0
  1294. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/trace.hpp +227 -0
  1295. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint16.hpp +62 -0
  1296. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint32.hpp +62 -0
  1297. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint64.hpp +63 -0
  1298. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint8.hpp +36 -0
  1299. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/unescape.hpp +214 -0
  1300. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uri.hpp +111 -0
  1301. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf16.hpp +57 -0
  1302. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf32.hpp +57 -0
  1303. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/cstream_input.hpp +32 -0
  1304. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/demangle.hpp +175 -0
  1305. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/disable_action.hpp +35 -0
  1306. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input.hpp +37 -0
  1307. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_failure.hpp +39 -0
  1308. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_success.hpp +39 -0
  1309. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/enable_action.hpp +35 -0
  1310. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol.hpp +37 -0
  1311. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol_pair.hpp +18 -0
  1312. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/file_input.hpp +44 -0
  1313. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action.hpp +54 -0
  1314. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action_input.hpp +106 -0
  1315. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/any.hpp +77 -0
  1316. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply.hpp +53 -0
  1317. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0.hpp +51 -0
  1318. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0_single.hpp +34 -0
  1319. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply_single.hpp +34 -0
  1320. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/at.hpp +55 -0
  1321. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bof.hpp +32 -0
  1322. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bol.hpp +31 -0
  1323. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump.hpp +45 -0
  1324. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump_help.hpp +26 -0
  1325. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bytes.hpp +43 -0
  1326. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/control.hpp +54 -0
  1327. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_crlf_eol.hpp +32 -0
  1328. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_eol.hpp +32 -0
  1329. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/crlf_eol.hpp +32 -0
  1330. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstream_reader.hpp +58 -0
  1331. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstring_reader.hpp +40 -0
  1332. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_false.hpp +16 -0
  1333. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_true.hpp +16 -0
  1334. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/disable.hpp +54 -0
  1335. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/discard.hpp +34 -0
  1336. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable.hpp +54 -0
  1337. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable_control.hpp +25 -0
  1338. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eof.hpp +32 -0
  1339. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eol.hpp +32 -0
  1340. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eolf.hpp +33 -0
  1341. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/failure.hpp +32 -0
  1342. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_posix.hpp +159 -0
  1343. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_win32.hpp +243 -0
  1344. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_reader.hpp +152 -0
  1345. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/filesystem.hpp +64 -0
  1346. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply.hpp +21 -0
  1347. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply0.hpp +21 -0
  1348. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_match.hpp +40 -0
  1349. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_unwind.hpp +21 -0
  1350. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/identifier.hpp +22 -0
  1351. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_apply.hpp +54 -0
  1352. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must.hpp +52 -0
  1353. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must_else.hpp +26 -0
  1354. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_then_else.hpp +51 -0
  1355. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/input_pair.hpp +29 -0
  1356. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istream_reader.hpp +50 -0
  1357. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istring.hpp +81 -0
  1358. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/iterator.hpp +49 -0
  1359. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_crlf_eol.hpp +37 -0
  1360. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_eol.hpp +32 -0
  1361. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list.hpp +19 -0
  1362. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_must.hpp +25 -0
  1363. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail.hpp +22 -0
  1364. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail_pad.hpp +22 -0
  1365. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/marker.hpp +80 -0
  1366. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/minus.hpp +21 -0
  1367. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply.hpp +28 -0
  1368. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply0.hpp +26 -0
  1369. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/must.hpp +69 -0
  1370. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/not_at.hpp +55 -0
  1371. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/one.hpp +66 -0
  1372. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/opt.hpp +57 -0
  1373. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad.hpp +19 -0
  1374. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad_opt.hpp +20 -0
  1375. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/path_to_string.hpp +28 -0
  1376. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_char.hpp +32 -0
  1377. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_utf8.hpp +89 -0
  1378. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pegtl_string.hpp +90 -0
  1379. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/plus.hpp +60 -0
  1380. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/raise.hpp +49 -0
  1381. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/range.hpp +60 -0
  1382. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/ranges.hpp +90 -0
  1383. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rematch.hpp +72 -0
  1384. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep.hpp +67 -0
  1385. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min.hpp +20 -0
  1386. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min_max.hpp +81 -0
  1387. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_opt.hpp +61 -0
  1388. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/require.hpp +42 -0
  1389. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/result_on_found.hpp +19 -0
  1390. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rules.hpp +64 -0
  1391. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/seq.hpp +58 -0
  1392. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/sor.hpp +67 -0
  1393. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star.hpp +52 -0
  1394. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star_must.hpp +24 -0
  1395. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/state.hpp +75 -0
  1396. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/string.hpp +67 -0
  1397. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/success.hpp +32 -0
  1398. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/try_catch_type.hpp +69 -0
  1399. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/until.hpp +88 -0
  1400. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/istream_input.hpp +32 -0
  1401. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/match.hpp +173 -0
  1402. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/memory_input.hpp +378 -0
  1403. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/mmap_input.hpp +79 -0
  1404. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/must_if.hpp +69 -0
  1405. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/normal.hpp +99 -0
  1406. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/nothing.hpp +19 -0
  1407. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse.hpp +72 -0
  1408. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse_error.hpp +119 -0
  1409. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/position.hpp +98 -0
  1410. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/read_input.hpp +54 -0
  1411. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply.hpp +16 -0
  1412. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply0.hpp +16 -0
  1413. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rewind_mode.hpp +20 -0
  1414. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rules.hpp +71 -0
  1415. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/string_input.hpp +64 -0
  1416. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/tracking_mode.hpp +19 -0
  1417. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/type_list.hpp +46 -0
  1418. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/utf8.hpp +28 -0
  1419. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/version.hpp +13 -0
  1420. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/visit.hpp +80 -0
  1421. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl.hpp +48 -0
  1422. data/ext/couchbase/third_party/json/include/tao/json/basic_value.hpp +962 -0
  1423. data/ext/couchbase/third_party/json/include/tao/json/binary.hpp +103 -0
  1424. data/ext/couchbase/third_party/json/include/tao/json/binary_view.hpp +31 -0
  1425. data/ext/couchbase/third_party/json/include/tao/json/binding/constant.hpp +231 -0
  1426. data/ext/couchbase/third_party/json/include/tao/json/binding/element.hpp +71 -0
  1427. data/ext/couchbase/third_party/json/include/tao/json/binding/element2.hpp +35 -0
  1428. data/ext/couchbase/third_party/json/include/tao/json/binding/factory.hpp +253 -0
  1429. data/ext/couchbase/third_party/json/include/tao/json/binding/for_nothing_value.hpp +17 -0
  1430. data/ext/couchbase/third_party/json/include/tao/json/binding/for_unknown_key.hpp +17 -0
  1431. data/ext/couchbase/third_party/json/include/tao/json/binding/inherit.hpp +14 -0
  1432. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/array.hpp +105 -0
  1433. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/elementr.hpp +134 -0
  1434. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/elementw.hpp +251 -0
  1435. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/inherit.hpp +45 -0
  1436. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/object.hpp +269 -0
  1437. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/type_key.hpp +54 -0
  1438. data/ext/couchbase/third_party/json/include/tao/json/binding/member.hpp +47 -0
  1439. data/ext/couchbase/third_party/json/include/tao/json/binding/member_kind.hpp +17 -0
  1440. data/ext/couchbase/third_party/json/include/tao/json/binding/versions.hpp +130 -0
  1441. data/ext/couchbase/third_party/json/include/tao/json/binding.hpp +74 -0
  1442. data/ext/couchbase/third_party/json/include/tao/json/cbor/consume_file.hpp +34 -0
  1443. data/ext/couchbase/third_party/json/include/tao/json/cbor/consume_string.hpp +32 -0
  1444. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_binary.hpp +44 -0
  1445. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_file.hpp +27 -0
  1446. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_input.hpp +43 -0
  1447. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_string.hpp +37 -0
  1448. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/to_stream.hpp +161 -0
  1449. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/to_string.hpp +37 -0
  1450. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  1451. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_file.hpp +33 -0
  1452. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_input.hpp +33 -0
  1453. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_string.hpp +32 -0
  1454. data/ext/couchbase/third_party/json/include/tao/json/cbor/internal/grammar.hpp +424 -0
  1455. data/ext/couchbase/third_party/json/include/tao/json/cbor/internal/major.hpp +28 -0
  1456. data/ext/couchbase/third_party/json/include/tao/json/cbor/parts_parser.hpp +395 -0
  1457. data/ext/couchbase/third_party/json/include/tao/json/cbor/to_stream.hpp +27 -0
  1458. data/ext/couchbase/third_party/json/include/tao/json/cbor/to_string.hpp +29 -0
  1459. data/ext/couchbase/third_party/json/include/tao/json/cbor.hpp +19 -0
  1460. data/ext/couchbase/third_party/json/include/tao/json/consume.hpp +43 -0
  1461. data/ext/couchbase/third_party/json/include/tao/json/consume_file.hpp +33 -0
  1462. data/ext/couchbase/third_party/json/include/tao/json/consume_string.hpp +31 -0
  1463. data/ext/couchbase/third_party/json/include/tao/json/contrib/array_traits.hpp +43 -0
  1464. data/ext/couchbase/third_party/json/include/tao/json/contrib/deque_traits.hpp +41 -0
  1465. data/ext/couchbase/third_party/json/include/tao/json/contrib/diff.hpp +106 -0
  1466. data/ext/couchbase/third_party/json/include/tao/json/contrib/get.hpp +152 -0
  1467. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +92 -0
  1468. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +76 -0
  1469. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +105 -0
  1470. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +36 -0
  1471. data/ext/couchbase/third_party/json/include/tao/json/contrib/list_traits.hpp +41 -0
  1472. data/ext/couchbase/third_party/json/include/tao/json/contrib/map_traits.hpp +43 -0
  1473. data/ext/couchbase/third_party/json/include/tao/json/contrib/multimap_traits.hpp +43 -0
  1474. data/ext/couchbase/third_party/json/include/tao/json/contrib/multiset_traits.hpp +41 -0
  1475. data/ext/couchbase/third_party/json/include/tao/json/contrib/pair_traits.hpp +21 -0
  1476. data/ext/couchbase/third_party/json/include/tao/json/contrib/patch.hpp +117 -0
  1477. data/ext/{third_party → couchbase/third_party}/json/include/tao/json/contrib/pointer_traits.hpp +0 -0
  1478. data/ext/couchbase/third_party/json/include/tao/json/contrib/position.hpp +166 -0
  1479. data/ext/couchbase/third_party/json/include/tao/json/contrib/reference.hpp +113 -0
  1480. data/ext/couchbase/third_party/json/include/tao/json/contrib/schema.hpp +1874 -0
  1481. data/ext/couchbase/third_party/json/include/tao/json/contrib/set_traits.hpp +41 -0
  1482. data/ext/couchbase/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +98 -0
  1483. data/ext/couchbase/third_party/json/include/tao/json/contrib/traits.hpp +128 -0
  1484. data/ext/couchbase/third_party/json/include/tao/json/contrib/tuple_traits.hpp +51 -0
  1485. data/ext/couchbase/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +97 -0
  1486. data/ext/couchbase/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +43 -0
  1487. data/ext/couchbase/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +41 -0
  1488. data/ext/couchbase/third_party/json/include/tao/json/contrib/variant_traits.hpp +73 -0
  1489. data/ext/couchbase/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +45 -0
  1490. data/ext/couchbase/third_party/json/include/tao/json/contrib/vector_traits.hpp +51 -0
  1491. data/ext/couchbase/third_party/json/include/tao/json/events/apply.hpp +20 -0
  1492. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_base64.hpp +26 -0
  1493. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_base64url.hpp +28 -0
  1494. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_exception.hpp +27 -0
  1495. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_hex.hpp +26 -0
  1496. data/ext/couchbase/third_party/json/include/tao/json/events/compare.hpp +255 -0
  1497. data/ext/couchbase/third_party/json/include/tao/json/events/debug.hpp +145 -0
  1498. data/ext/couchbase/third_party/json/include/tao/json/events/discard.hpp +43 -0
  1499. data/ext/couchbase/third_party/json/include/tao/json/events/from_file.hpp +28 -0
  1500. data/ext/couchbase/third_party/json/include/tao/json/events/from_input.hpp +45 -0
  1501. data/ext/couchbase/third_party/json/include/tao/json/events/from_stream.hpp +33 -0
  1502. data/ext/couchbase/third_party/json/include/tao/json/events/from_string.hpp +38 -0
  1503. data/ext/couchbase/third_party/json/include/tao/json/events/from_value.hpp +205 -0
  1504. data/ext/couchbase/third_party/json/include/tao/json/events/hash.hpp +174 -0
  1505. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +50 -0
  1506. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +49 -0
  1507. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +48 -0
  1508. data/ext/couchbase/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +62 -0
  1509. data/ext/couchbase/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +57 -0
  1510. data/ext/couchbase/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +82 -0
  1511. data/ext/couchbase/third_party/json/include/tao/json/events/limit_value_count.hpp +46 -0
  1512. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +31 -0
  1513. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_null.hpp +32 -0
  1514. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_string.hpp +40 -0
  1515. data/ext/couchbase/third_party/json/include/tao/json/events/prefer_signed.hpp +32 -0
  1516. data/ext/couchbase/third_party/json/include/tao/json/events/prefer_unsigned.hpp +32 -0
  1517. data/ext/couchbase/third_party/json/include/tao/json/events/produce.hpp +120 -0
  1518. data/ext/couchbase/third_party/json/include/tao/json/events/ref.hpp +114 -0
  1519. data/ext/couchbase/third_party/json/include/tao/json/events/statistics.hpp +112 -0
  1520. data/ext/couchbase/third_party/json/include/tao/json/events/tee.hpp +386 -0
  1521. data/ext/couchbase/third_party/json/include/tao/json/events/to_pretty_stream.hpp +172 -0
  1522. data/ext/couchbase/third_party/json/include/tao/json/events/to_stream.hpp +142 -0
  1523. data/ext/couchbase/third_party/json/include/tao/json/events/to_string.hpp +39 -0
  1524. data/ext/couchbase/third_party/json/include/tao/json/events/to_value.hpp +137 -0
  1525. data/ext/couchbase/third_party/json/include/tao/json/events/transformer.hpp +70 -0
  1526. data/ext/couchbase/third_party/json/include/tao/json/events/validate_event_order.hpp +415 -0
  1527. data/ext/couchbase/third_party/json/include/tao/json/events/validate_keys.hpp +52 -0
  1528. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_base.hpp +192 -0
  1529. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_ref.hpp +179 -0
  1530. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_wrap.hpp +166 -0
  1531. data/ext/couchbase/third_party/json/include/tao/json/events.hpp +52 -0
  1532. data/ext/couchbase/third_party/json/include/tao/json/external/double.hpp +1306 -0
  1533. data/ext/couchbase/third_party/json/include/tao/json/external/itoa.hpp +151 -0
  1534. data/ext/couchbase/third_party/json/include/tao/json/external/ryu.hpp +1216 -0
  1535. data/ext/couchbase/third_party/json/include/tao/json/forward.hpp +44 -0
  1536. data/ext/couchbase/third_party/json/include/tao/json/from_file.hpp +32 -0
  1537. data/ext/couchbase/third_party/json/include/tao/json/from_input.hpp +32 -0
  1538. data/ext/couchbase/third_party/json/include/tao/json/from_stream.hpp +45 -0
  1539. data/ext/couchbase/third_party/json/include/tao/json/from_string.hpp +41 -0
  1540. data/ext/couchbase/third_party/json/include/tao/json/internal/action.hpp +271 -0
  1541. data/ext/couchbase/third_party/json/include/tao/json/internal/base64.hpp +55 -0
  1542. data/ext/couchbase/third_party/json/include/tao/json/internal/base64url.hpp +53 -0
  1543. data/ext/couchbase/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  1544. data/ext/couchbase/third_party/json/include/tao/json/internal/endian.hpp +60 -0
  1545. data/ext/couchbase/third_party/json/include/tao/json/internal/endian_gcc.hpp +198 -0
  1546. data/ext/couchbase/third_party/json/include/tao/json/internal/endian_win.hpp +103 -0
  1547. data/ext/couchbase/third_party/json/include/tao/json/internal/errors.hpp +86 -0
  1548. data/ext/couchbase/third_party/json/include/tao/json/internal/escape.hpp +69 -0
  1549. data/ext/couchbase/third_party/json/include/tao/json/internal/filesystem.hpp +15 -0
  1550. data/ext/couchbase/third_party/json/include/tao/json/internal/format.hpp +59 -0
  1551. data/ext/couchbase/third_party/json/include/tao/json/internal/grammar.hpp +231 -0
  1552. data/ext/couchbase/third_party/json/include/tao/json/internal/hexdump.hpp +33 -0
  1553. data/ext/couchbase/third_party/json/include/tao/json/internal/identity.hpp +22 -0
  1554. data/ext/couchbase/third_party/json/include/tao/json/internal/number_state.hpp +81 -0
  1555. data/ext/couchbase/third_party/json/include/tao/json/internal/number_traits.hpp +267 -0
  1556. data/ext/couchbase/third_party/json/include/tao/json/internal/pair.hpp +42 -0
  1557. data/ext/couchbase/third_party/json/include/tao/json/internal/parse_util.hpp +113 -0
  1558. data/ext/couchbase/third_party/json/include/tao/json/internal/sha256.hpp +218 -0
  1559. data/ext/couchbase/third_party/json/include/tao/json/internal/single.hpp +40 -0
  1560. data/ext/couchbase/third_party/json/include/tao/json/internal/string_t.hpp +35 -0
  1561. data/ext/couchbase/third_party/json/include/tao/json/internal/type_traits.hpp +97 -0
  1562. data/ext/couchbase/third_party/json/include/tao/json/internal/unescape_action.hpp +24 -0
  1563. data/ext/couchbase/third_party/json/include/tao/json/internal/uri_fragment.hpp +182 -0
  1564. data/ext/couchbase/third_party/json/include/tao/json/jaxn/consume_file.hpp +34 -0
  1565. data/ext/couchbase/third_party/json/include/tao/json/jaxn/consume_string.hpp +32 -0
  1566. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_file.hpp +29 -0
  1567. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_input.hpp +45 -0
  1568. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +33 -0
  1569. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_string.hpp +39 -0
  1570. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +69 -0
  1571. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +67 -0
  1572. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_string.hpp +39 -0
  1573. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_file.hpp +33 -0
  1574. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_input.hpp +33 -0
  1575. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_stream.hpp +48 -0
  1576. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_string.hpp +42 -0
  1577. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/action.hpp +380 -0
  1578. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +115 -0
  1579. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/errors.hpp +110 -0
  1580. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +381 -0
  1581. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/integer.hpp +255 -0
  1582. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +28 -0
  1583. data/ext/couchbase/third_party/json/include/tao/json/jaxn/is_identifier.hpp +23 -0
  1584. data/ext/couchbase/third_party/json/include/tao/json/jaxn/parts_parser.hpp +261 -0
  1585. data/ext/couchbase/third_party/json/include/tao/json/jaxn/to_stream.hpp +36 -0
  1586. data/ext/couchbase/third_party/json/include/tao/json/jaxn/to_string.hpp +34 -0
  1587. data/ext/couchbase/third_party/json/include/tao/json/jaxn.hpp +19 -0
  1588. data/ext/couchbase/third_party/json/include/tao/json/message_extension.hpp +49 -0
  1589. data/ext/couchbase/third_party/json/include/tao/json/msgpack/consume_file.hpp +34 -0
  1590. data/ext/couchbase/third_party/json/include/tao/json/msgpack/consume_string.hpp +32 -0
  1591. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +44 -0
  1592. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_file.hpp +27 -0
  1593. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_input.hpp +43 -0
  1594. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_string.hpp +37 -0
  1595. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +214 -0
  1596. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/to_string.hpp +37 -0
  1597. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  1598. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_file.hpp +33 -0
  1599. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_input.hpp +33 -0
  1600. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_string.hpp +32 -0
  1601. data/ext/couchbase/third_party/json/include/tao/json/msgpack/internal/format.hpp +57 -0
  1602. data/ext/couchbase/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +230 -0
  1603. data/ext/couchbase/third_party/json/include/tao/json/msgpack/parts_parser.hpp +315 -0
  1604. data/ext/couchbase/third_party/json/include/tao/json/msgpack/to_stream.hpp +27 -0
  1605. data/ext/couchbase/third_party/json/include/tao/json/msgpack/to_string.hpp +29 -0
  1606. data/ext/couchbase/third_party/json/include/tao/json/msgpack.hpp +19 -0
  1607. data/ext/couchbase/third_party/json/include/tao/json/operators.hpp +490 -0
  1608. data/ext/couchbase/third_party/json/include/tao/json/parts_parser.hpp +333 -0
  1609. data/ext/couchbase/third_party/json/include/tao/json/pointer.hpp +433 -0
  1610. data/ext/couchbase/third_party/json/include/tao/json/produce.hpp +61 -0
  1611. data/ext/couchbase/third_party/json/include/tao/json/self_contained.hpp +130 -0
  1612. data/ext/couchbase/third_party/json/include/tao/json/span.hpp +496 -0
  1613. data/ext/couchbase/third_party/json/include/tao/json/stream.hpp +38 -0
  1614. data/ext/couchbase/third_party/json/include/tao/json/to_stream.hpp +42 -0
  1615. data/ext/couchbase/third_party/json/include/tao/json/to_string.hpp +25 -0
  1616. data/ext/couchbase/third_party/json/include/tao/json/traits.hpp +975 -0
  1617. data/ext/couchbase/third_party/json/include/tao/json/type.hpp +112 -0
  1618. data/ext/couchbase/third_party/json/include/tao/json/ubjson/consume_file.hpp +34 -0
  1619. data/ext/couchbase/third_party/json/include/tao/json/ubjson/consume_string.hpp +32 -0
  1620. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +44 -0
  1621. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_file.hpp +27 -0
  1622. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_input.hpp +43 -0
  1623. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_string.hpp +37 -0
  1624. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +174 -0
  1625. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/to_string.hpp +37 -0
  1626. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  1627. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_file.hpp +33 -0
  1628. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_input.hpp +33 -0
  1629. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_string.hpp +32 -0
  1630. data/ext/couchbase/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +415 -0
  1631. data/ext/couchbase/third_party/json/include/tao/json/ubjson/internal/marker.hpp +46 -0
  1632. data/ext/couchbase/third_party/json/include/tao/json/ubjson/parts_parser.hpp +396 -0
  1633. data/ext/couchbase/third_party/json/include/tao/json/ubjson/to_stream.hpp +28 -0
  1634. data/ext/couchbase/third_party/json/include/tao/json/ubjson/to_string.hpp +30 -0
  1635. data/ext/couchbase/third_party/json/include/tao/json/ubjson.hpp +19 -0
  1636. data/ext/couchbase/third_party/json/include/tao/json/utf8.hpp +56 -0
  1637. data/ext/couchbase/third_party/json/include/tao/json/value.hpp +12 -0
  1638. data/ext/couchbase/third_party/json/include/tao/json.hpp +45 -0
  1639. data/ext/couchbase/third_party/jsonsl/LICENSE +20 -0
  1640. data/ext/couchbase/third_party/jsonsl/jsonsl.c +3059 -0
  1641. data/ext/couchbase/third_party/jsonsl/jsonsl.h +978 -0
  1642. data/ext/couchbase/third_party/snappy/CMakeLists.txt +297 -0
  1643. data/ext/{third_party → couchbase/third_party}/snappy/COPYING +0 -0
  1644. data/ext/{third_party → couchbase/third_party}/snappy/cmake/SnappyConfig.cmake.in +0 -0
  1645. data/ext/couchbase/third_party/snappy/cmake/config.h.in +62 -0
  1646. data/ext/{third_party → couchbase/third_party}/snappy/snappy-c.cc +0 -0
  1647. data/ext/{third_party → couchbase/third_party}/snappy/snappy-c.h +0 -0
  1648. data/ext/couchbase/third_party/snappy/snappy-internal.h +231 -0
  1649. data/ext/couchbase/third_party/snappy/snappy-sinksource.cc +104 -0
  1650. data/ext/{third_party → couchbase/third_party}/snappy/snappy-sinksource.h +0 -0
  1651. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.cc +42 -0
  1652. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.h +606 -0
  1653. data/ext/couchbase/third_party/snappy/snappy-stubs-public.h.in +74 -0
  1654. data/ext/couchbase/third_party/snappy/snappy.cc +1661 -0
  1655. data/ext/couchbase/third_party/snappy/snappy.h +207 -0
  1656. data/ext/couchbase/third_party/spdlog/CMakeLists.txt +320 -0
  1657. data/ext/{third_party → couchbase/third_party}/spdlog/LICENSE +0 -0
  1658. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/ide.cmake +0 -0
  1659. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/pch.h.in +0 -0
  1660. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/spdlog.pc.in +0 -0
  1661. data/ext/couchbase/third_party/spdlog/cmake/spdlogCPack.cmake +60 -0
  1662. data/ext/couchbase/third_party/spdlog/cmake/spdlogConfig.cmake.in +19 -0
  1663. data/ext/couchbase/third_party/spdlog/cmake/utils.cmake +62 -0
  1664. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/version.rc.in +0 -0
  1665. data/ext/couchbase/third_party/spdlog/include/spdlog/async.h +93 -0
  1666. data/ext/couchbase/third_party/spdlog/include/spdlog/async_logger-inl.h +92 -0
  1667. data/ext/couchbase/third_party/spdlog/include/spdlog/async_logger.h +68 -0
  1668. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/cfg/argv.h +0 -0
  1669. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/cfg/env.h +0 -0
  1670. data/ext/couchbase/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +120 -0
  1671. data/ext/couchbase/third_party/spdlog/include/spdlog/cfg/helpers.h +29 -0
  1672. data/ext/couchbase/third_party/spdlog/include/spdlog/common-inl.h +78 -0
  1673. data/ext/couchbase/third_party/spdlog/include/spdlog/common.h +276 -0
  1674. data/ext/couchbase/third_party/spdlog/include/spdlog/details/backtracer-inl.h +69 -0
  1675. data/ext/couchbase/third_party/spdlog/include/spdlog/details/backtracer.h +45 -0
  1676. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/circular_q.h +0 -0
  1677. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/console_globals.h +0 -0
  1678. data/ext/couchbase/third_party/spdlog/include/spdlog/details/file_helper-inl.h +147 -0
  1679. data/ext/couchbase/third_party/spdlog/include/spdlog/details/file_helper.h +59 -0
  1680. data/ext/couchbase/third_party/spdlog/include/spdlog/details/fmt_helper.h +117 -0
  1681. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg-inl.h +37 -0
  1682. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg.h +37 -0
  1683. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +58 -0
  1684. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +33 -0
  1685. data/ext/couchbase/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +126 -0
  1686. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  1687. data/ext/couchbase/third_party/spdlog/include/spdlog/details/os-inl.h +599 -0
  1688. data/ext/couchbase/third_party/spdlog/include/spdlog/details/os.h +118 -0
  1689. data/ext/couchbase/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +49 -0
  1690. data/ext/couchbase/third_party/spdlog/include/spdlog/details/periodic_worker.h +40 -0
  1691. data/ext/couchbase/third_party/spdlog/include/spdlog/details/registry-inl.h +313 -0
  1692. data/ext/couchbase/third_party/spdlog/include/spdlog/details/registry.h +115 -0
  1693. data/ext/couchbase/third_party/spdlog/include/spdlog/details/synchronous_factory.h +24 -0
  1694. data/ext/couchbase/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +175 -0
  1695. data/ext/couchbase/third_party/spdlog/include/spdlog/details/tcp_client.h +146 -0
  1696. data/ext/couchbase/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +129 -0
  1697. data/ext/couchbase/third_party/spdlog/include/spdlog/details/thread_pool.h +120 -0
  1698. data/ext/couchbase/third_party/spdlog/include/spdlog/details/windows_include.h +11 -0
  1699. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +217 -0
  1700. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/args.h +232 -0
  1701. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +1308 -0
  1702. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/color.h +627 -0
  1703. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +639 -0
  1704. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/core.h +3002 -0
  1705. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +2620 -0
  1706. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/format.h +2830 -0
  1707. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +2 -0
  1708. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/os.h +515 -0
  1709. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +181 -0
  1710. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +652 -0
  1711. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +468 -0
  1712. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/xchar.h +236 -0
  1713. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  1714. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/compile.h +20 -0
  1715. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/fmt.h +27 -0
  1716. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/ostr.h +20 -0
  1717. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/xchar.h +20 -0
  1718. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/formatter.h +0 -0
  1719. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/fwd.h +0 -0
  1720. data/ext/couchbase/third_party/spdlog/include/spdlog/logger-inl.h +257 -0
  1721. data/ext/couchbase/third_party/spdlog/include/spdlog/logger.h +403 -0
  1722. data/ext/couchbase/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +1395 -0
  1723. data/ext/couchbase/third_party/spdlog/include/spdlog/pattern_formatter.h +126 -0
  1724. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/android_sink.h +119 -0
  1725. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +145 -0
  1726. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +118 -0
  1727. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +63 -0
  1728. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/base_sink.h +52 -0
  1729. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +43 -0
  1730. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +58 -0
  1731. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +242 -0
  1732. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  1733. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +94 -0
  1734. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/hourly_file_sink.h +194 -0
  1735. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/mongo_sink.h +98 -0
  1736. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +48 -0
  1737. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  1738. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  1739. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/qt_sinks.h +93 -0
  1740. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  1741. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +131 -0
  1742. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +78 -0
  1743. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/sink-inl.h +25 -0
  1744. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/sink.h +35 -0
  1745. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  1746. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +45 -0
  1747. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +139 -0
  1748. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +87 -0
  1749. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/syslog_sink.h +0 -0
  1750. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +103 -0
  1751. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +81 -0
  1752. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +276 -0
  1753. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +175 -0
  1754. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +85 -0
  1755. data/ext/couchbase/third_party/spdlog/include/spdlog/spdlog-inl.h +125 -0
  1756. data/ext/couchbase/third_party/spdlog/include/spdlog/spdlog.h +345 -0
  1757. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/stopwatch.h +0 -0
  1758. data/ext/couchbase/third_party/spdlog/include/spdlog/tweakme.h +124 -0
  1759. data/ext/couchbase/third_party/spdlog/include/spdlog/version.h +10 -0
  1760. data/ext/couchbase/third_party/spdlog/src/async.cpp +13 -0
  1761. data/ext/couchbase/third_party/spdlog/src/cfg.cpp +8 -0
  1762. data/ext/couchbase/third_party/spdlog/src/color_sinks.cpp +51 -0
  1763. data/ext/couchbase/third_party/spdlog/src/file_sinks.cpp +20 -0
  1764. data/ext/couchbase/third_party/spdlog/src/fmt.cpp +68 -0
  1765. data/ext/couchbase/third_party/spdlog/src/spdlog.cpp +26 -0
  1766. data/ext/couchbase/third_party/spdlog/src/stdout_sinks.cpp +29 -0
  1767. data/ext/couchbase.cxx +7422 -0
  1768. data/ext/ext_build_version.hxx.in +20 -0
  1769. data/ext/extconf.rb +56 -17
  1770. data/ext/revisions.rb +2 -0
  1771. data/lib/active_support/cache/couchbase_store.rb +32 -55
  1772. data/lib/couchbase/binary_collection.rb +5 -5
  1773. data/lib/couchbase/bucket.rb +2 -2
  1774. data/lib/couchbase/cluster.rb +17 -14
  1775. data/lib/couchbase/collection.rb +26 -25
  1776. data/lib/couchbase/collection_options.rb +23 -9
  1777. data/lib/couchbase/configuration.rb +1 -1
  1778. data/lib/couchbase/errors.rb +6 -0
  1779. data/lib/couchbase/management/analytics_index_manager.rb +920 -226
  1780. data/lib/couchbase/management/bucket_manager.rb +215 -71
  1781. data/lib/couchbase/management/collection_manager.rb +173 -61
  1782. data/lib/couchbase/management/query_index_manager.rb +360 -180
  1783. data/lib/couchbase/options.rb +122 -3
  1784. data/lib/couchbase/scope.rb +107 -3
  1785. data/lib/couchbase/search_options.rb +84 -0
  1786. data/lib/couchbase/subdoc.rb +1 -1
  1787. data/lib/couchbase/utils/time.rb +4 -0
  1788. data/lib/couchbase/version.rb +10 -10
  1789. metadata +1775 -1314
  1790. data/ext/build_config.hxx.in +0 -22
  1791. data/ext/build_version.hxx.in +0 -30
  1792. data/ext/cmake/CompilerWarnings.cmake +0 -84
  1793. data/ext/cmake/PreventInSourceBuilds.cmake +0 -21
  1794. data/ext/cmake/Sanitizers.cmake +0 -66
  1795. data/ext/cmake/StandardProjectSettings.cmake +0 -40
  1796. data/ext/cmake/Testing.cmake +0 -49
  1797. data/ext/cmake/ThirdPartyDependencies.cmake +0 -20
  1798. data/ext/cmake/VersionInfo.cmake +0 -37
  1799. data/ext/couchbase/bucket.hxx +0 -372
  1800. data/ext/couchbase/capabilities.hxx +0 -117
  1801. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  1802. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  1803. data/ext/couchbase/cbsasl/client.cc +0 -48
  1804. data/ext/couchbase/cbsasl/client.h +0 -127
  1805. data/ext/couchbase/cbsasl/context.cc +0 -33
  1806. data/ext/couchbase/cbsasl/context.h +0 -52
  1807. data/ext/couchbase/cbsasl/error.h +0 -72
  1808. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  1809. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  1810. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  1811. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  1812. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  1813. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  1814. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  1815. data/ext/couchbase/cluster.hxx +0 -356
  1816. data/ext/couchbase/cluster_options.hxx +0 -56
  1817. data/ext/couchbase/collections_manifest.hxx +0 -88
  1818. data/ext/couchbase/configuration.hxx +0 -652
  1819. data/ext/couchbase/couchbase.cxx +0 -7800
  1820. data/ext/couchbase/diagnostics.hxx +0 -248
  1821. data/ext/couchbase/document_id.hxx +0 -40
  1822. data/ext/couchbase/error_context/analytics.hxx +0 -46
  1823. data/ext/couchbase/error_context/http.hxx +0 -44
  1824. data/ext/couchbase/error_context/key_value.hxx +0 -47
  1825. data/ext/couchbase/error_context/query.hxx +0 -46
  1826. data/ext/couchbase/error_context/search.hxx +0 -47
  1827. data/ext/couchbase/error_context/view.hxx +0 -47
  1828. data/ext/couchbase/error_map.hxx +0 -261
  1829. data/ext/couchbase/errors.hxx +0 -706
  1830. data/ext/couchbase/io/dns_client.hxx +0 -217
  1831. data/ext/couchbase/io/dns_codec.hxx +0 -206
  1832. data/ext/couchbase/io/dns_config.hxx +0 -116
  1833. data/ext/couchbase/io/dns_message.hxx +0 -555
  1834. data/ext/couchbase/io/http_command.hxx +0 -111
  1835. data/ext/couchbase/io/http_context.hxx +0 -37
  1836. data/ext/couchbase/io/http_message.hxx +0 -47
  1837. data/ext/couchbase/io/http_parser.hxx +0 -176
  1838. data/ext/couchbase/io/http_session.hxx +0 -444
  1839. data/ext/couchbase/io/http_session_manager.hxx +0 -264
  1840. data/ext/couchbase/io/mcbp_command.hxx +0 -249
  1841. data/ext/couchbase/io/mcbp_context.hxx +0 -37
  1842. data/ext/couchbase/io/mcbp_message.hxx +0 -63
  1843. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  1844. data/ext/couchbase/io/mcbp_session.hxx +0 -1356
  1845. data/ext/couchbase/io/query_cache.hxx +0 -61
  1846. data/ext/couchbase/io/retry_context.hxx +0 -38
  1847. data/ext/couchbase/io/retry_orchestrator.hxx +0 -112
  1848. data/ext/couchbase/io/retry_reason.hxx +0 -235
  1849. data/ext/couchbase/io/retry_strategy.hxx +0 -156
  1850. data/ext/couchbase/io/streams.hxx +0 -216
  1851. data/ext/couchbase/mutation_token.hxx +0 -38
  1852. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -125
  1853. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -112
  1854. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -114
  1855. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -112
  1856. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -111
  1857. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -99
  1858. data/ext/couchbase/operations/analytics_index_create.hxx +0 -135
  1859. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -117
  1860. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -113
  1861. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -109
  1862. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -108
  1863. data/ext/couchbase/operations/bucket_create.hxx +0 -171
  1864. data/ext/couchbase/operations/bucket_drop.hxx +0 -70
  1865. data/ext/couchbase/operations/bucket_flush.hxx +0 -69
  1866. data/ext/couchbase/operations/bucket_get.hxx +0 -78
  1867. data/ext/couchbase/operations/bucket_get_all.hxx +0 -73
  1868. data/ext/couchbase/operations/bucket_settings.hxx +0 -166
  1869. data/ext/couchbase/operations/bucket_update.hxx +0 -147
  1870. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -64
  1871. data/ext/couchbase/operations/collection_create.hxx +0 -102
  1872. data/ext/couchbase/operations/collection_drop.hxx +0 -92
  1873. data/ext/couchbase/operations/collections_manifest_get.hxx +0 -66
  1874. data/ext/couchbase/operations/design_document.hxx +0 -59
  1875. data/ext/couchbase/operations/document_analytics.hxx +0 -316
  1876. data/ext/couchbase/operations/document_append.hxx +0 -72
  1877. data/ext/couchbase/operations/document_decrement.hxx +0 -83
  1878. data/ext/couchbase/operations/document_exists.hxx +0 -83
  1879. data/ext/couchbase/operations/document_get.hxx +0 -66
  1880. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -67
  1881. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -67
  1882. data/ext/couchbase/operations/document_get_projected.hxx +0 -257
  1883. data/ext/couchbase/operations/document_increment.hxx +0 -85
  1884. data/ext/couchbase/operations/document_insert.hxx +0 -77
  1885. data/ext/couchbase/operations/document_lookup_in.hxx +0 -112
  1886. data/ext/couchbase/operations/document_mutate_in.hxx +0 -151
  1887. data/ext/couchbase/operations/document_prepend.hxx +0 -72
  1888. data/ext/couchbase/operations/document_query.hxx +0 -440
  1889. data/ext/couchbase/operations/document_remove.hxx +0 -72
  1890. data/ext/couchbase/operations/document_replace.hxx +0 -79
  1891. data/ext/couchbase/operations/document_search.hxx +0 -392
  1892. data/ext/couchbase/operations/document_touch.hxx +0 -63
  1893. data/ext/couchbase/operations/document_unlock.hxx +0 -63
  1894. data/ext/couchbase/operations/document_upsert.hxx +0 -77
  1895. data/ext/couchbase/operations/document_view.hxx +0 -245
  1896. data/ext/couchbase/operations/group_drop.hxx +0 -72
  1897. data/ext/couchbase/operations/group_get.hxx +0 -80
  1898. data/ext/couchbase/operations/group_get_all.hxx +0 -77
  1899. data/ext/couchbase/operations/group_upsert.hxx +0 -125
  1900. data/ext/couchbase/operations/http_noop.hxx +0 -78
  1901. data/ext/couchbase/operations/mcbp_noop.hxx +0 -55
  1902. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -93
  1903. data/ext/couchbase/operations/query_index_create.hxx +0 -152
  1904. data/ext/couchbase/operations/query_index_drop.hxx +0 -126
  1905. data/ext/couchbase/operations/query_index_get_all.hxx +0 -124
  1906. data/ext/couchbase/operations/rbac.hxx +0 -276
  1907. data/ext/couchbase/operations/role_get_all.hxx +0 -77
  1908. data/ext/couchbase/operations/scope_create.hxx +0 -95
  1909. data/ext/couchbase/operations/scope_drop.hxx +0 -89
  1910. data/ext/couchbase/operations/scope_get_all.hxx +0 -82
  1911. data/ext/couchbase/operations/search_get_stats.hxx +0 -60
  1912. data/ext/couchbase/operations/search_index.hxx +0 -79
  1913. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -105
  1914. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -93
  1915. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -93
  1916. data/ext/couchbase/operations/search_index_control_query.hxx +0 -93
  1917. data/ext/couchbase/operations/search_index_drop.hxx +0 -90
  1918. data/ext/couchbase/operations/search_index_get.hxx +0 -93
  1919. data/ext/couchbase/operations/search_index_get_all.hxx +0 -89
  1920. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -101
  1921. data/ext/couchbase/operations/search_index_get_stats.hxx +0 -88
  1922. data/ext/couchbase/operations/search_index_upsert.hxx +0 -119
  1923. data/ext/couchbase/operations/user_drop.hxx +0 -73
  1924. data/ext/couchbase/operations/user_get.hxx +0 -81
  1925. data/ext/couchbase/operations/user_get_all.hxx +0 -78
  1926. data/ext/couchbase/operations/user_upsert.hxx +0 -132
  1927. data/ext/couchbase/operations/view_index_drop.hxx +0 -68
  1928. data/ext/couchbase/operations/view_index_get.hxx +0 -97
  1929. data/ext/couchbase/operations/view_index_get_all.hxx +0 -132
  1930. data/ext/couchbase/operations/view_index_upsert.hxx +0 -88
  1931. data/ext/couchbase/operations.hxx +0 -109
  1932. data/ext/couchbase/origin.hxx +0 -179
  1933. data/ext/couchbase/platform/backtrace.c +0 -189
  1934. data/ext/couchbase/platform/base64.cc +0 -234
  1935. data/ext/couchbase/platform/base64.h +0 -47
  1936. data/ext/couchbase/platform/random.cc +0 -119
  1937. data/ext/couchbase/platform/string_hex.cc +0 -99
  1938. data/ext/couchbase/platform/string_hex.h +0 -50
  1939. data/ext/couchbase/platform/terminate_handler.cc +0 -130
  1940. data/ext/couchbase/platform/uuid.cc +0 -96
  1941. data/ext/couchbase/protocol/client_opcode.hxx +0 -632
  1942. data/ext/couchbase/protocol/client_request.hxx +0 -161
  1943. data/ext/couchbase/protocol/client_response.hxx +0 -221
  1944. data/ext/couchbase/protocol/cmd_append.hxx +0 -145
  1945. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -79
  1946. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  1947. data/ext/couchbase/protocol/cmd_exists.hxx +0 -172
  1948. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  1949. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  1950. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  1951. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -126
  1952. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  1953. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  1954. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  1955. data/ext/couchbase/protocol/cmd_hello.hxx +0 -165
  1956. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  1957. data/ext/couchbase/protocol/cmd_info.hxx +0 -25
  1958. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  1959. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -227
  1960. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -406
  1961. data/ext/couchbase/protocol/cmd_noop.hxx +0 -82
  1962. data/ext/couchbase/protocol/cmd_prepend.hxx +0 -145
  1963. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  1964. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  1965. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  1966. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  1967. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  1968. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  1969. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  1970. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  1971. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  1972. data/ext/couchbase/protocol/datatype.hxx +0 -48
  1973. data/ext/couchbase/protocol/durability_level.hxx +0 -83
  1974. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  1975. data/ext/couchbase/protocol/hello_feature.hxx +0 -264
  1976. data/ext/couchbase/protocol/magic.hxx +0 -83
  1977. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  1978. data/ext/couchbase/protocol/server_request.hxx +0 -122
  1979. data/ext/couchbase/protocol/status.hxx +0 -343
  1980. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  1981. data/ext/couchbase/service_type.hxx +0 -60
  1982. data/ext/couchbase/timeout_defaults.hxx +0 -41
  1983. data/ext/couchbase/utils/byteswap.hxx +0 -33
  1984. data/ext/couchbase/utils/connection_string.hxx +0 -397
  1985. data/ext/couchbase/utils/url_codec.hxx +0 -225
  1986. data/ext/couchbase/version.hxx +0 -38
  1987. data/ext/test/CMakeLists.txt +0 -5
  1988. data/ext/test/test_helper.hxx +0 -141
  1989. data/ext/test/test_helper_native.hxx +0 -56
  1990. data/ext/test/test_helper_ruby.hxx +0 -72
  1991. data/ext/test/test_native_binary_operations.cxx +0 -186
  1992. data/ext/test/test_native_diagnostics.cxx +0 -436
  1993. data/ext/test/test_native_trivial_crud.cxx +0 -83
  1994. data/ext/test/test_ruby_trivial_crud.cxx +0 -35
  1995. data/ext/test/test_ruby_trivial_query.cxx +0 -34
  1996. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +0 -71
  1997. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -125
  1998. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -166
  1999. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -582
  2000. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -133
  2001. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1215
  2002. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  2003. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  2004. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1206
  2005. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -761
  2006. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  2007. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  2008. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  2009. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2501
  2010. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  2011. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  2012. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1053
  2013. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  2014. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  2015. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -811
  2016. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -575
  2017. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2496
  2018. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  2019. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  2020. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  2021. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  2022. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  2023. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  2024. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  2025. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -471
  2026. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  2027. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  2028. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  2029. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  2030. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  2031. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -130
  2032. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -112
  2033. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  2034. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  2035. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  2036. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -64
  2037. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  2038. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -934
  2039. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +0 -107
  2040. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  2041. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -650
  2042. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  2043. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +0 -88
  2044. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  2045. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  2046. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  2047. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -88
  2048. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  2049. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -120
  2050. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  2051. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1822
  2052. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  2053. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  2054. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  2055. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  2056. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -295
  2057. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  2058. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -139
  2059. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -148
  2060. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -148
  2061. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  2062. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  2063. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  2064. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  2065. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -203
  2066. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  2067. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  2068. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  2069. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  2070. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  2071. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  2072. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  2073. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  2074. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  2075. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  2076. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -284
  2077. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  2078. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -80
  2079. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -264
  2080. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  2081. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -438
  2082. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  2083. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  2084. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -608
  2085. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  2086. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  2087. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  2088. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  2089. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  2090. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -396
  2091. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  2092. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  2093. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  2094. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  2095. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  2096. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  2097. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  2098. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  2099. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  2100. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -149
  2101. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  2102. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  2103. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -654
  2104. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  2105. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  2106. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  2107. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  2108. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -668
  2109. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3962
  2110. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  2111. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -385
  2112. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  2113. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -117
  2114. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -178
  2115. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  2116. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  2117. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  2118. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  2119. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  2120. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  2121. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -603
  2122. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  2123. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  2124. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  2125. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  2126. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  2127. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  2128. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  2129. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  2130. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  2131. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  2132. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  2133. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  2134. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -175
  2135. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  2136. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  2137. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  2138. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  2139. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  2140. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  2141. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -73
  2142. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  2143. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  2144. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  2145. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -106
  2146. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  2147. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  2148. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  2149. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  2150. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  2151. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  2152. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  2153. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  2154. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  2155. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  2156. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  2157. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  2158. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  2159. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  2160. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  2161. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -175
  2162. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  2163. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  2164. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  2165. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  2166. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  2167. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  2168. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  2169. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  2170. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -416
  2171. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -98
  2172. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -237
  2173. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -242
  2174. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -123
  2175. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -159
  2176. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -164
  2177. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -145
  2178. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -162
  2179. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -156
  2180. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -528
  2181. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -541
  2182. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -98
  2183. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  2184. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  2185. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -67
  2186. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  2187. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  2188. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  2189. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -140
  2190. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  2191. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -150
  2192. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  2193. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  2194. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -232
  2195. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  2196. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  2197. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  2198. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  2199. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  2200. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  2201. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  2202. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  2203. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -90
  2204. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  2205. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  2206. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  2207. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  2208. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -383
  2209. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  2210. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  2211. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  2212. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  2213. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +0 -45
  2214. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  2215. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -188
  2216. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  2217. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  2218. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  2219. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  2220. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  2221. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -166
  2222. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -145
  2223. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  2224. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  2225. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  2226. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  2227. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -183
  2228. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  2229. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  2230. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  2231. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  2232. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  2233. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  2234. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  2235. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  2236. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  2237. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -148
  2238. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -294
  2239. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -90
  2240. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  2241. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -164
  2242. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  2243. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  2244. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  2245. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -117
  2246. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  2247. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -110
  2248. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -342
  2249. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -127
  2250. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  2251. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -96
  2252. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -171
  2253. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  2254. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -312
  2255. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -135
  2256. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -124
  2257. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -133
  2258. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -125
  2259. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -118
  2260. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  2261. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  2262. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  2263. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -128
  2264. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  2265. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  2266. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  2267. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  2268. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  2269. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  2270. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  2271. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  2272. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  2273. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -125
  2274. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  2275. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -98
  2276. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -119
  2277. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -110
  2278. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  2279. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  2280. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  2281. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  2282. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  2283. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -148
  2284. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -327
  2285. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -121
  2286. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  2287. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  2288. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +0 -249
  2289. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +0 -2264
  2290. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +0 -47
  2291. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +0 -1351
  2292. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +0 -1064
  2293. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +0 -390
  2294. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +0 -1018
  2295. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +0 -486
  2296. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +0 -185
  2297. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +0 -201
  2298. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +0 -152
  2299. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +0 -105
  2300. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +0 -128
  2301. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +0 -261
  2302. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +0 -233
  2303. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +0 -90
  2304. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +0 -264
  2305. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +0 -238
  2306. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +0 -40
  2307. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +0 -36
  2308. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +0 -71
  2309. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +0 -917
  2310. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +0 -178
  2311. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +0 -94
  2312. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +0 -721
  2313. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +0 -327
  2314. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +0 -280
  2315. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +0 -48
  2316. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +0 -720
  2317. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +0 -290
  2318. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +0 -86
  2319. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +0 -311
  2320. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +0 -253
  2321. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +0 -253
  2322. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +0 -486
  2323. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +0 -250
  2324. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +0 -450
  2325. data/ext/third_party/asio/asio/include/asio/execution.hpp +0 -48
  2326. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  2327. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -347
  2328. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -287
  2329. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  2330. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  2331. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  2332. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  2333. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  2334. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  2335. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  2336. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -104
  2337. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  2338. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -111
  2339. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  2340. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -436
  2341. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -527
  2342. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -507
  2343. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -298
  2344. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -635
  2345. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -916
  2346. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -248
  2347. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  2348. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -243
  2349. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  2350. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  2351. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  2352. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  2353. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -301
  2354. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -43
  2355. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -61
  2356. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -440
  2357. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  2358. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +0 -49
  2359. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -248
  2360. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1202
  2361. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -744
  2362. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3335
  2363. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -390
  2364. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  2365. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  2366. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -526
  2367. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -85
  2368. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  2369. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -92
  2370. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -186
  2371. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -350
  2372. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -141
  2373. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -279
  2374. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -1028
  2375. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1104
  2376. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -666
  2377. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -1530
  2378. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -376
  2379. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  2380. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  2381. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  2382. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  2383. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  2384. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  2385. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  2386. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  2387. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  2388. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  2389. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  2390. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  2391. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  2392. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  2393. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  2394. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  2395. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  2396. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  2397. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  2398. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  2399. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  2400. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  2401. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  2402. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  2403. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  2404. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  2405. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  2406. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  2407. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  2408. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  2409. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  2410. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  2411. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  2412. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  2413. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  2414. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  2415. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  2416. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  2417. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  2418. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  2419. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  2420. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  2421. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +0 -61
  2422. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  2423. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  2424. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  2425. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  2426. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  2427. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  2428. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  2429. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  2430. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  2431. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +0 -58
  2432. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  2433. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  2434. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  2435. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  2436. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  2437. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  2438. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  2439. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -126
  2440. data/ext/third_party/asio/asio/include/asio/prefer.hpp +0 -656
  2441. data/ext/third_party/asio/asio/include/asio/query.hpp +0 -296
  2442. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  2443. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  2444. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  2445. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  2446. data/ext/third_party/asio/asio/include/asio/require.hpp +0 -524
  2447. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +0 -310
  2448. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  2449. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  2450. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  2451. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  2452. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -344
  2453. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  2454. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  2455. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -119
  2456. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -165
  2457. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -67
  2458. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -349
  2459. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  2460. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -415
  2461. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  2462. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  2463. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  2464. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -72
  2465. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -69
  2466. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -169
  2467. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  2468. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -76
  2469. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  2470. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  2471. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  2472. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  2473. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  2474. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  2475. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  2476. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  2477. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  2478. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -900
  2479. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  2480. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  2481. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  2482. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  2483. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +0 -31
  2484. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  2485. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -537
  2486. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  2487. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -90
  2488. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  2489. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -662
  2490. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  2491. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  2492. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  2493. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -1111
  2494. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  2495. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +0 -114
  2496. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +0 -114
  2497. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +0 -112
  2498. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +0 -112
  2499. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +0 -100
  2500. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +0 -108
  2501. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +0 -108
  2502. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +0 -108
  2503. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +0 -108
  2504. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +0 -108
  2505. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +0 -108
  2506. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +0 -108
  2507. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +0 -108
  2508. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +0 -108
  2509. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +0 -108
  2510. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +0 -108
  2511. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +0 -108
  2512. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +0 -108
  2513. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +0 -108
  2514. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +0 -108
  2515. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +0 -112
  2516. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +0 -112
  2517. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +0 -234
  2518. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +0 -234
  2519. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +0 -108
  2520. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +0 -108
  2521. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +0 -108
  2522. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +0 -123
  2523. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +0 -123
  2524. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +0 -112
  2525. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +0 -112
  2526. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  2527. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -35
  2528. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  2529. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  2530. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  2531. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -262
  2532. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  2533. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  2534. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  2535. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -169
  2536. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  2537. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  2538. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  2539. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  2540. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  2541. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  2542. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  2543. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  2544. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  2545. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  2546. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -145
  2547. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  2548. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  2549. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  2550. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  2551. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  2552. data/ext/third_party/asio/asio/include/asio.hpp +0 -182
  2553. data/ext/third_party/gsl/CMakeLists.txt +0 -127
  2554. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  2555. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  2556. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  2557. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  2558. data/ext/third_party/gsl/include/gsl/gsl_narrow +0 -52
  2559. data/ext/third_party/gsl/include/gsl/gsl_util +0 -129
  2560. data/ext/third_party/gsl/include/gsl/multi_span +0 -2263
  2561. data/ext/third_party/gsl/include/gsl/pointers +0 -287
  2562. data/ext/third_party/gsl/include/gsl/span +0 -816
  2563. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  2564. data/ext/third_party/gsl/include/gsl/string_span +0 -706
  2565. data/ext/third_party/json/CMakeLists.txt +0 -44
  2566. data/ext/third_party/json/LICENSE +0 -21
  2567. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -942
  2568. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  2569. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  2570. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  2571. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  2572. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -251
  2573. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  2574. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  2575. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  2576. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -104
  2577. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  2578. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -268
  2579. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  2580. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  2581. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  2582. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -129
  2583. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  2584. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  2585. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  2586. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +0 -43
  2587. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  2588. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  2589. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  2590. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  2591. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  2592. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +0 -32
  2593. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  2594. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  2595. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  2596. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -418
  2597. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  2598. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  2599. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  2600. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  2601. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -19
  2602. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  2603. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  2604. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  2605. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  2606. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  2607. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  2608. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  2609. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  2610. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -76
  2611. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  2612. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  2613. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  2614. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  2615. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  2616. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  2617. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  2618. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  2619. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  2620. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -113
  2621. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1874
  2622. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  2623. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -98
  2624. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  2625. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  2626. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -97
  2627. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  2628. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  2629. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  2630. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  2631. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  2632. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  2633. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  2634. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  2635. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  2636. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -255
  2637. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  2638. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  2639. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  2640. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  2641. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  2642. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  2643. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  2644. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  2645. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  2646. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  2647. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  2648. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  2649. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  2650. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  2651. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  2652. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  2653. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  2654. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  2655. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  2656. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  2657. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  2658. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  2659. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  2660. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  2661. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  2662. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  2663. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  2664. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  2665. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  2666. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  2667. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  2668. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  2669. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -176
  2670. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  2671. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  2672. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  2673. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  2674. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -49
  2675. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -54
  2676. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  2677. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  2678. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  2679. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  2680. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  2681. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  2682. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  2683. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  2684. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  2685. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  2686. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +0 -176
  2687. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +0 -275
  2688. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +0 -77
  2689. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +0 -151
  2690. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +0 -16
  2691. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -272
  2692. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -66
  2693. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -196
  2694. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -196
  2695. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -103
  2696. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -56
  2697. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -431
  2698. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian.hpp +0 -62
  2699. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_gcc.hpp +0 -206
  2700. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_win.hpp +0 -106
  2701. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint.hpp +0 -54
  2702. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint8.hpp +0 -33
  2703. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint.hpp +0 -45
  2704. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint8.hpp +0 -32
  2705. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf16.hpp +0 -54
  2706. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf32.hpp +0 -43
  2707. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/read_uint.hpp +0 -77
  2708. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +0 -52
  2709. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  2710. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  2711. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -440
  2712. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -105
  2713. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +0 -75
  2714. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +0 -53
  2715. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -234
  2716. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -69
  2717. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +0 -117
  2718. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -94
  2719. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -43
  2720. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +0 -193
  2721. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +0 -118
  2722. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  2723. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +0 -227
  2724. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint16.hpp +0 -62
  2725. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint32.hpp +0 -62
  2726. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint64.hpp +0 -63
  2727. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint8.hpp +0 -36
  2728. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  2729. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  2730. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf16.hpp +0 -49
  2731. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf32.hpp +0 -49
  2732. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -32
  2733. data/ext/third_party/json/include/tao/json/external/pegtl/demangle.hpp +0 -138
  2734. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  2735. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  2736. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  2737. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  2738. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  2739. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  2740. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  2741. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  2742. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -54
  2743. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -106
  2744. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  2745. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  2746. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -51
  2747. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  2748. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  2749. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -55
  2750. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -32
  2751. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  2752. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  2753. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  2754. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -43
  2755. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -54
  2756. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  2757. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  2758. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  2759. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  2760. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  2761. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dependent_false.hpp +0 -16
  2762. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -54
  2763. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -34
  2764. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -54
  2765. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable_control.hpp +0 -25
  2766. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -32
  2767. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -32
  2768. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -33
  2769. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +0 -32
  2770. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -134
  2771. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -213
  2772. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -113
  2773. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -21
  2774. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -21
  2775. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -40
  2776. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +0 -21
  2777. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  2778. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -54
  2779. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -47
  2780. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -21
  2781. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  2782. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  2783. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -39
  2784. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  2785. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -49
  2786. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  2787. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  2788. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  2789. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  2790. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -22
  2791. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  2792. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -80
  2793. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +0 -21
  2794. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -28
  2795. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -26
  2796. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -64
  2797. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -55
  2798. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -55
  2799. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  2800. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  2801. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  2802. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +0 -26
  2803. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  2804. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -89
  2805. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  2806. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -60
  2807. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -44
  2808. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -56
  2809. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -103
  2810. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -72
  2811. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -67
  2812. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  2813. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -81
  2814. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -61
  2815. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  2816. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  2817. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  2818. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -58
  2819. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -67
  2820. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -52
  2821. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  2822. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -59
  2823. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  2824. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +0 -32
  2825. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  2826. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -88
  2827. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -32
  2828. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -169
  2829. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -365
  2830. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  2831. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +0 -64
  2832. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  2833. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -19
  2834. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -51
  2835. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -114
  2836. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -83
  2837. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -54
  2838. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  2839. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  2840. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  2841. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -68
  2842. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -64
  2843. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  2844. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +0 -46
  2845. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  2846. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  2847. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +0 -66
  2848. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -44
  2849. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  2850. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  2851. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  2852. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  2853. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  2854. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  2855. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  2856. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  2857. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  2858. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +0 -14
  2859. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  2860. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  2861. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  2862. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  2863. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  2864. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -57
  2865. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  2866. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  2867. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  2868. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  2869. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  2870. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  2871. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  2872. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  2873. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  2874. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  2875. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -96
  2876. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  2877. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  2878. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  2879. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  2880. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  2881. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  2882. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  2883. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  2884. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  2885. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  2886. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  2887. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  2888. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  2889. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  2890. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  2891. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  2892. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  2893. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  2894. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  2895. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -255
  2896. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  2897. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  2898. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -261
  2899. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  2900. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  2901. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  2902. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  2903. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  2904. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  2905. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +0 -43
  2906. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  2907. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  2908. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  2909. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  2910. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  2911. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +0 -32
  2912. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  2913. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  2914. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  2915. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  2916. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -250
  2917. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  2918. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  2919. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  2920. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -19
  2921. data/ext/third_party/json/include/tao/json/operators.hpp +0 -490
  2922. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -302
  2923. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  2924. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  2925. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -131
  2926. data/ext/third_party/json/include/tao/json/span.hpp +0 -496
  2927. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  2928. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  2929. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  2930. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  2931. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  2932. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  2933. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  2934. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +0 -43
  2935. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  2936. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  2937. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  2938. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  2939. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  2940. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +0 -32
  2941. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  2942. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  2943. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  2944. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -415
  2945. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  2946. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  2947. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  2948. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  2949. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -19
  2950. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  2951. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  2952. data/ext/third_party/json/include/tao/json.hpp +0 -45
  2953. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  2954. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  2955. data/ext/third_party/snappy/snappy-internal.h +0 -315
  2956. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  2957. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  2958. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  2959. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  2960. data/ext/third_party/snappy/snappy.cc +0 -1774
  2961. data/ext/third_party/snappy/snappy.h +0 -209
  2962. data/ext/third_party/spdlog/CMakeLists.txt +0 -291
  2963. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  2964. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  2965. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  2966. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  2967. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  2968. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  2969. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -119
  2970. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -29
  2971. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  2972. data/ext/third_party/spdlog/include/spdlog/common.h +0 -245
  2973. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  2974. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  2975. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  2976. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  2977. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -116
  2978. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  2979. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  2980. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  2981. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  2982. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  2983. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  2984. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  2985. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  2986. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  2987. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -313
  2988. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -115
  2989. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  2990. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  2991. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -146
  2992. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  2993. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  2994. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  2995. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  2996. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1123
  2997. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -566
  2998. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -665
  2999. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1882
  3000. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1453
  3001. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3729
  3002. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  3003. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +0 -450
  3004. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -167
  3005. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  3006. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -751
  3007. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -386
  3008. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +0 -20
  3009. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -27
  3010. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  3011. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -257
  3012. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -366
  3013. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1373
  3014. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  3015. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  3016. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  3017. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  3018. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  3019. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  3020. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  3021. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  3022. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  3023. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  3024. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  3025. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  3026. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  3027. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  3028. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  3029. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  3030. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  3031. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -123
  3032. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -87
  3033. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  3034. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  3035. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  3036. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -170
  3037. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  3038. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -125
  3039. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -295
  3040. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  3041. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  3042. data/ext/third_party/spdlog/src/async.cpp +0 -13
  3043. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  3044. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  3045. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  3046. data/ext/third_party/spdlog/src/fmt.cpp +0 -63
  3047. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  3048. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
@@ -0,0 +1,3217 @@
1
+ // Formatting library for C++ - the core API for char/UTF-8
2
+ //
3
+ // Copyright (c) 2012 - present, Victor Zverovich
4
+ // All rights reserved.
5
+ //
6
+ // For the license information refer to format.h.
7
+
8
+ #ifndef FMT_CORE_H_
9
+ #define FMT_CORE_H_
10
+
11
+ #include <cstddef> // std::byte
12
+ #include <cstdio> // std::FILE
13
+ #include <cstring>
14
+ #include <iterator>
15
+ #include <limits>
16
+ #include <string>
17
+ #include <type_traits>
18
+
19
+ // The fmt library version in the form major * 10000 + minor * 100 + patch.
20
+ #define FMT_VERSION 80001
21
+
22
+ #if defined(__clang__) && !defined(__ibmxl__)
23
+ # define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__)
24
+ #else
25
+ # define FMT_CLANG_VERSION 0
26
+ #endif
27
+
28
+ #if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && \
29
+ !defined(__NVCOMPILER)
30
+ # define FMT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
31
+ #else
32
+ # define FMT_GCC_VERSION 0
33
+ #endif
34
+
35
+ #ifndef FMT_GCC_PRAGMA
36
+ // Workaround _Pragma bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59884.
37
+ # if FMT_GCC_VERSION >= 504
38
+ # define FMT_GCC_PRAGMA(arg) _Pragma(arg)
39
+ # else
40
+ # define FMT_GCC_PRAGMA(arg)
41
+ # endif
42
+ #endif
43
+
44
+ #ifdef __ICL
45
+ # define FMT_ICC_VERSION __ICL
46
+ #elif defined(__INTEL_COMPILER)
47
+ # define FMT_ICC_VERSION __INTEL_COMPILER
48
+ #else
49
+ # define FMT_ICC_VERSION 0
50
+ #endif
51
+
52
+ #ifdef __NVCC__
53
+ # define FMT_NVCC __NVCC__
54
+ #else
55
+ # define FMT_NVCC 0
56
+ #endif
57
+
58
+ #ifdef _MSC_VER
59
+ # define FMT_MSC_VER _MSC_VER
60
+ # define FMT_MSC_WARNING(...) __pragma(warning(__VA_ARGS__))
61
+ #else
62
+ # define FMT_MSC_VER 0
63
+ # define FMT_MSC_WARNING(...)
64
+ #endif
65
+
66
+ #ifdef __has_feature
67
+ # define FMT_HAS_FEATURE(x) __has_feature(x)
68
+ #else
69
+ # define FMT_HAS_FEATURE(x) 0
70
+ #endif
71
+
72
+ #if defined(__has_include) && \
73
+ (!defined(__INTELLISENSE__) || FMT_MSC_VER > 1900) && \
74
+ (!FMT_ICC_VERSION || FMT_ICC_VERSION >= 1600)
75
+ # define FMT_HAS_INCLUDE(x) __has_include(x)
76
+ #else
77
+ # define FMT_HAS_INCLUDE(x) 0
78
+ #endif
79
+
80
+ #ifdef __has_cpp_attribute
81
+ # define FMT_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x)
82
+ #else
83
+ # define FMT_HAS_CPP_ATTRIBUTE(x) 0
84
+ #endif
85
+
86
+ #ifdef _MSVC_LANG
87
+ # define FMT_CPLUSPLUS _MSVC_LANG
88
+ #else
89
+ # define FMT_CPLUSPLUS __cplusplus
90
+ #endif
91
+
92
+ #define FMT_HAS_CPP14_ATTRIBUTE(attribute) \
93
+ (FMT_CPLUSPLUS >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))
94
+
95
+ #define FMT_HAS_CPP17_ATTRIBUTE(attribute) \
96
+ (FMT_CPLUSPLUS >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute))
97
+
98
+ // Check if relaxed C++14 constexpr is supported.
99
+ // GCC doesn't allow throw in constexpr until version 6 (bug 67371).
100
+ #ifndef FMT_USE_CONSTEXPR
101
+ # define FMT_USE_CONSTEXPR \
102
+ (FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1912 || \
103
+ (FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) && \
104
+ !FMT_NVCC && !FMT_ICC_VERSION
105
+ #endif
106
+ #if FMT_USE_CONSTEXPR
107
+ # define FMT_CONSTEXPR constexpr
108
+ # define FMT_CONSTEXPR_DECL constexpr
109
+ #else
110
+ # define FMT_CONSTEXPR
111
+ # define FMT_CONSTEXPR_DECL
112
+ #endif
113
+
114
+ #if ((__cplusplus >= 202002L) && \
115
+ (!defined(_GLIBCXX_RELEASE) || _GLIBCXX_RELEASE > 9)) || \
116
+ (__cplusplus >= 201709L && FMT_GCC_VERSION >= 1002)
117
+ # define FMT_CONSTEXPR20 constexpr
118
+ #else
119
+ # define FMT_CONSTEXPR20
120
+ #endif
121
+
122
+ // Check if constexpr std::char_traits<>::compare,length is supported.
123
+ #if defined(__GLIBCXX__)
124
+ # if __cplusplus >= 201703L && defined(_GLIBCXX_RELEASE) && \
125
+ _GLIBCXX_RELEASE >= 7 // GCC 7+ libstdc++ has _GLIBCXX_RELEASE.
126
+ # define FMT_CONSTEXPR_CHAR_TRAITS constexpr
127
+ # endif
128
+ #elif defined(_LIBCPP_VERSION) && __cplusplus >= 201703L && \
129
+ _LIBCPP_VERSION >= 4000
130
+ # define FMT_CONSTEXPR_CHAR_TRAITS constexpr
131
+ #elif FMT_MSC_VER >= 1914 && _MSVC_LANG >= 201703L
132
+ # define FMT_CONSTEXPR_CHAR_TRAITS constexpr
133
+ #endif
134
+ #ifndef FMT_CONSTEXPR_CHAR_TRAITS
135
+ # define FMT_CONSTEXPR_CHAR_TRAITS
136
+ #endif
137
+
138
+ // Check if exceptions are disabled.
139
+ #ifndef FMT_EXCEPTIONS
140
+ # if (defined(__GNUC__) && !defined(__EXCEPTIONS)) || \
141
+ FMT_MSC_VER && !_HAS_EXCEPTIONS
142
+ # define FMT_EXCEPTIONS 0
143
+ # else
144
+ # define FMT_EXCEPTIONS 1
145
+ # endif
146
+ #endif
147
+
148
+ // Define FMT_USE_NOEXCEPT to make fmt use noexcept (C++11 feature).
149
+ #ifndef FMT_USE_NOEXCEPT
150
+ # define FMT_USE_NOEXCEPT 0
151
+ #endif
152
+
153
+ #if FMT_USE_NOEXCEPT || FMT_HAS_FEATURE(cxx_noexcept) || \
154
+ FMT_GCC_VERSION >= 408 || FMT_MSC_VER >= 1900
155
+ # define FMT_DETECTED_NOEXCEPT noexcept
156
+ # define FMT_HAS_CXX11_NOEXCEPT 1
157
+ #else
158
+ # define FMT_DETECTED_NOEXCEPT throw()
159
+ # define FMT_HAS_CXX11_NOEXCEPT 0
160
+ #endif
161
+
162
+ #ifndef FMT_NOEXCEPT
163
+ # if FMT_EXCEPTIONS || FMT_HAS_CXX11_NOEXCEPT
164
+ # define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT
165
+ # else
166
+ # define FMT_NOEXCEPT
167
+ # endif
168
+ #endif
169
+
170
+ // [[noreturn]] is disabled on MSVC and NVCC because of bogus unreachable code
171
+ // warnings.
172
+ #if FMT_EXCEPTIONS && FMT_HAS_CPP_ATTRIBUTE(noreturn) && !FMT_MSC_VER && \
173
+ !FMT_NVCC
174
+ # define FMT_NORETURN [[noreturn]]
175
+ #else
176
+ # define FMT_NORETURN
177
+ #endif
178
+
179
+ #if __cplusplus == 201103L || __cplusplus == 201402L
180
+ # if defined(__INTEL_COMPILER) || defined(__PGI)
181
+ # define FMT_FALLTHROUGH
182
+ # elif defined(__clang__)
183
+ # define FMT_FALLTHROUGH [[clang::fallthrough]]
184
+ # elif FMT_GCC_VERSION >= 700 && \
185
+ (!defined(__EDG_VERSION__) || __EDG_VERSION__ >= 520)
186
+ # define FMT_FALLTHROUGH [[gnu::fallthrough]]
187
+ # else
188
+ # define FMT_FALLTHROUGH
189
+ # endif
190
+ #elif FMT_HAS_CPP17_ATTRIBUTE(fallthrough)
191
+ # define FMT_FALLTHROUGH [[fallthrough]]
192
+ #else
193
+ # define FMT_FALLTHROUGH
194
+ #endif
195
+
196
+ #ifndef FMT_NODISCARD
197
+ # if FMT_HAS_CPP17_ATTRIBUTE(nodiscard)
198
+ # define FMT_NODISCARD [[nodiscard]]
199
+ # else
200
+ # define FMT_NODISCARD
201
+ # endif
202
+ #endif
203
+
204
+ #ifndef FMT_USE_FLOAT
205
+ # define FMT_USE_FLOAT 1
206
+ #endif
207
+ #ifndef FMT_USE_DOUBLE
208
+ # define FMT_USE_DOUBLE 1
209
+ #endif
210
+ #ifndef FMT_USE_LONG_DOUBLE
211
+ # define FMT_USE_LONG_DOUBLE 1
212
+ #endif
213
+
214
+ #ifndef FMT_INLINE
215
+ # if FMT_GCC_VERSION || FMT_CLANG_VERSION
216
+ # define FMT_INLINE inline __attribute__((always_inline))
217
+ # else
218
+ # define FMT_INLINE inline
219
+ # endif
220
+ #endif
221
+
222
+ #ifndef FMT_BEGIN_NAMESPACE
223
+ # define FMT_BEGIN_NAMESPACE \
224
+ namespace fmt { \
225
+ inline namespace v8 {
226
+ # define FMT_END_NAMESPACE \
227
+ } \
228
+ }
229
+ #endif
230
+
231
+ #ifndef FMT_MODULE_EXPORT
232
+ # define FMT_MODULE_EXPORT
233
+ # define FMT_MODULE_EXPORT_BEGIN
234
+ # define FMT_MODULE_EXPORT_END
235
+ # define FMT_BEGIN_DETAIL_NAMESPACE namespace detail {
236
+ # define FMT_END_DETAIL_NAMESPACE }
237
+ #endif
238
+
239
+ #if !defined(FMT_HEADER_ONLY) && defined(_WIN32)
240
+ # define FMT_CLASS_API FMT_MSC_WARNING(suppress : 4275)
241
+ # ifdef FMT_EXPORT
242
+ # define FMT_API __declspec(dllexport)
243
+ # elif defined(FMT_SHARED)
244
+ # define FMT_API __declspec(dllimport)
245
+ # endif
246
+ #else
247
+ # define FMT_CLASS_API
248
+ # if defined(FMT_EXPORT) || defined(FMT_SHARED)
249
+ # if defined(__GNUC__) || defined(__clang__)
250
+ # define FMT_API __attribute__((visibility("default")))
251
+ # endif
252
+ # endif
253
+ #endif
254
+ #ifndef FMT_API
255
+ # define FMT_API
256
+ #endif
257
+
258
+ // libc++ supports string_view in pre-c++17.
259
+ #if (FMT_HAS_INCLUDE(<string_view>) && \
260
+ (__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \
261
+ (defined(_MSVC_LANG) && _MSVC_LANG > 201402L && _MSC_VER >= 1910)
262
+ # include <string_view>
263
+ # define FMT_USE_STRING_VIEW
264
+ #elif FMT_HAS_INCLUDE("experimental/string_view") && __cplusplus >= 201402L
265
+ # include <experimental/string_view>
266
+ # define FMT_USE_EXPERIMENTAL_STRING_VIEW
267
+ #endif
268
+
269
+ #ifndef FMT_UNICODE
270
+ # define FMT_UNICODE !FMT_MSC_VER
271
+ #endif
272
+
273
+ #ifndef FMT_CONSTEVAL
274
+ # if ((FMT_GCC_VERSION >= 1000 || FMT_CLANG_VERSION >= 1101) && \
275
+ __cplusplus > 201703L && !defined(__apple_build_version__)) || \
276
+ (defined(__cpp_consteval) && \
277
+ (!FMT_MSC_VER || _MSC_FULL_VER >= 193030704))
278
+ // consteval is broken in MSVC before VS2022 and Apple clang 13.
279
+ # define FMT_CONSTEVAL consteval
280
+ # define FMT_HAS_CONSTEVAL
281
+ # else
282
+ # define FMT_CONSTEVAL
283
+ # endif
284
+ #endif
285
+
286
+ #ifndef FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
287
+ # if defined(__cpp_nontype_template_args) && \
288
+ ((FMT_GCC_VERSION >= 903 && __cplusplus >= 201709L) || \
289
+ __cpp_nontype_template_args >= 201911L)
290
+ # define FMT_USE_NONTYPE_TEMPLATE_PARAMETERS 1
291
+ # else
292
+ # define FMT_USE_NONTYPE_TEMPLATE_PARAMETERS 0
293
+ # endif
294
+ #endif
295
+
296
+ // Enable minimal optimizations for more compact code in debug mode.
297
+ FMT_GCC_PRAGMA("GCC push_options")
298
+ #ifndef __OPTIMIZE__
299
+ FMT_GCC_PRAGMA("GCC optimize(\"Og\")")
300
+ #endif
301
+
302
+ FMT_BEGIN_NAMESPACE
303
+ FMT_MODULE_EXPORT_BEGIN
304
+
305
+ // Implementations of enable_if_t and other metafunctions for older systems.
306
+ template <bool B, typename T = void>
307
+ using enable_if_t = typename std::enable_if<B, T>::type;
308
+ template <bool B, typename T, typename F>
309
+ using conditional_t = typename std::conditional<B, T, F>::type;
310
+ template <bool B> using bool_constant = std::integral_constant<bool, B>;
311
+ template <typename T>
312
+ using remove_reference_t = typename std::remove_reference<T>::type;
313
+ template <typename T>
314
+ using remove_const_t = typename std::remove_const<T>::type;
315
+ template <typename T>
316
+ using remove_cvref_t = typename std::remove_cv<remove_reference_t<T>>::type;
317
+ template <typename T> struct type_identity { using type = T; };
318
+ template <typename T> using type_identity_t = typename type_identity<T>::type;
319
+
320
+ struct monostate {
321
+ constexpr monostate() {}
322
+ };
323
+
324
+ // An enable_if helper to be used in template parameters which results in much
325
+ // shorter symbols: https://godbolt.org/z/sWw4vP. Extra parentheses are needed
326
+ // to workaround a bug in MSVC 2019 (see #1140 and #1186).
327
+ #ifdef FMT_DOC
328
+ # define FMT_ENABLE_IF(...)
329
+ #else
330
+ # define FMT_ENABLE_IF(...) enable_if_t<(__VA_ARGS__), int> = 0
331
+ #endif
332
+
333
+ FMT_BEGIN_DETAIL_NAMESPACE
334
+
335
+ // Suppress "unused variable" warnings with the method described in
336
+ // https://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/.
337
+ // (void)var does not work on many Intel compilers.
338
+ template <typename... T> FMT_CONSTEXPR void ignore_unused(const T&...) {}
339
+
340
+ constexpr FMT_INLINE auto is_constant_evaluated(bool default_value = false)
341
+ FMT_NOEXCEPT -> bool {
342
+ #ifdef __cpp_lib_is_constant_evaluated
343
+ ignore_unused(default_value);
344
+ return std::is_constant_evaluated();
345
+ #else
346
+ return default_value;
347
+ #endif
348
+ }
349
+
350
+ // A function to suppress "conditional expression is constant" warnings.
351
+ template <typename T> constexpr FMT_INLINE auto const_check(T value) -> T {
352
+ return value;
353
+ }
354
+
355
+ FMT_NORETURN FMT_API void assert_fail(const char* file, int line,
356
+ const char* message);
357
+
358
+ #ifndef FMT_ASSERT
359
+ # ifdef NDEBUG
360
+ // FMT_ASSERT is not empty to avoid -Werror=empty-body.
361
+ # define FMT_ASSERT(condition, message) \
362
+ ::fmt::detail::ignore_unused((condition), (message))
363
+ # else
364
+ # define FMT_ASSERT(condition, message) \
365
+ ((condition) /* void() fails with -Winvalid-constexpr on clang 4.0.1 */ \
366
+ ? (void)0 \
367
+ : ::fmt::detail::assert_fail(__FILE__, __LINE__, (message)))
368
+ # endif
369
+ #endif
370
+
371
+ #ifdef __cpp_lib_byte
372
+ using byte = std::byte;
373
+ #else
374
+ enum class byte : unsigned char {};
375
+ #endif
376
+
377
+ #if defined(FMT_USE_STRING_VIEW)
378
+ template <typename Char> using std_string_view = std::basic_string_view<Char>;
379
+ #elif defined(FMT_USE_EXPERIMENTAL_STRING_VIEW)
380
+ template <typename Char>
381
+ using std_string_view = std::experimental::basic_string_view<Char>;
382
+ #else
383
+ template <typename T> struct std_string_view {};
384
+ #endif
385
+
386
+ #ifdef FMT_USE_INT128
387
+ // Do nothing.
388
+ #elif defined(__SIZEOF_INT128__) && !FMT_NVCC && \
389
+ !(FMT_CLANG_VERSION && FMT_MSC_VER)
390
+ # define FMT_USE_INT128 1
391
+ using int128_t = __int128_t;
392
+ using uint128_t = __uint128_t;
393
+ template <typename T> inline auto convert_for_visit(T value) -> T {
394
+ return value;
395
+ }
396
+ #else
397
+ # define FMT_USE_INT128 0
398
+ #endif
399
+ #if !FMT_USE_INT128
400
+ enum class int128_t {};
401
+ enum class uint128_t {};
402
+ // Reduce template instantiations.
403
+ template <typename T> inline auto convert_for_visit(T) -> monostate {
404
+ return {};
405
+ }
406
+ #endif
407
+
408
+ // Casts a nonnegative integer to unsigned.
409
+ template <typename Int>
410
+ FMT_CONSTEXPR auto to_unsigned(Int value) ->
411
+ typename std::make_unsigned<Int>::type {
412
+ FMT_ASSERT(value >= 0, "negative value");
413
+ return static_cast<typename std::make_unsigned<Int>::type>(value);
414
+ }
415
+
416
+ FMT_MSC_WARNING(suppress : 4566) constexpr unsigned char micro[] = "\u00B5";
417
+
418
+ constexpr auto is_utf8() -> bool {
419
+ // Avoid buggy sign extensions in MSVC's constant evaluation mode.
420
+ // https://developercommunity.visualstudio.com/t/C-difference-in-behavior-for-unsigned/1233612
421
+ using uchar = unsigned char;
422
+ return FMT_UNICODE || (sizeof(micro) == 3 && uchar(micro[0]) == 0xC2 &&
423
+ uchar(micro[1]) == 0xB5);
424
+ }
425
+ FMT_END_DETAIL_NAMESPACE
426
+
427
+ /**
428
+ An implementation of ``std::basic_string_view`` for pre-C++17. It provides a
429
+ subset of the API. ``fmt::basic_string_view`` is used for format strings even
430
+ if ``std::string_view`` is available to prevent issues when a library is
431
+ compiled with a different ``-std`` option than the client code (which is not
432
+ recommended).
433
+ */
434
+ template <typename Char> class basic_string_view {
435
+ private:
436
+ const Char* data_;
437
+ size_t size_;
438
+
439
+ public:
440
+ using value_type = Char;
441
+ using iterator = const Char*;
442
+
443
+ constexpr basic_string_view() FMT_NOEXCEPT : data_(nullptr), size_(0) {}
444
+
445
+ /** Constructs a string reference object from a C string and a size. */
446
+ constexpr basic_string_view(const Char* s, size_t count) FMT_NOEXCEPT
447
+ : data_(s),
448
+ size_(count) {}
449
+
450
+ /**
451
+ \rst
452
+ Constructs a string reference object from a C string computing
453
+ the size with ``std::char_traits<Char>::length``.
454
+ \endrst
455
+ */
456
+ FMT_CONSTEXPR_CHAR_TRAITS
457
+ FMT_INLINE
458
+ basic_string_view(const Char* s)
459
+ : data_(s),
460
+ size_(detail::const_check(std::is_same<Char, char>::value &&
461
+ !detail::is_constant_evaluated(true))
462
+ ? std::strlen(reinterpret_cast<const char*>(s))
463
+ : std::char_traits<Char>::length(s)) {}
464
+
465
+ /** Constructs a string reference from a ``std::basic_string`` object. */
466
+ template <typename Traits, typename Alloc>
467
+ FMT_CONSTEXPR basic_string_view(
468
+ const std::basic_string<Char, Traits, Alloc>& s) FMT_NOEXCEPT
469
+ : data_(s.data()),
470
+ size_(s.size()) {}
471
+
472
+ template <typename S, FMT_ENABLE_IF(std::is_same<
473
+ S, detail::std_string_view<Char>>::value)>
474
+ FMT_CONSTEXPR basic_string_view(S s) FMT_NOEXCEPT : data_(s.data()),
475
+ size_(s.size()) {}
476
+
477
+ /** Returns a pointer to the string data. */
478
+ constexpr auto data() const -> const Char* { return data_; }
479
+
480
+ /** Returns the string size. */
481
+ constexpr auto size() const -> size_t { return size_; }
482
+
483
+ constexpr auto begin() const -> iterator { return data_; }
484
+ constexpr auto end() const -> iterator { return data_ + size_; }
485
+
486
+ constexpr auto operator[](size_t pos) const -> const Char& {
487
+ return data_[pos];
488
+ }
489
+
490
+ FMT_CONSTEXPR void remove_prefix(size_t n) {
491
+ data_ += n;
492
+ size_ -= n;
493
+ }
494
+
495
+ // Lexicographically compare this string reference to other.
496
+ FMT_CONSTEXPR_CHAR_TRAITS auto compare(basic_string_view other) const -> int {
497
+ size_t str_size = size_ < other.size_ ? size_ : other.size_;
498
+ int result = std::char_traits<Char>::compare(data_, other.data_, str_size);
499
+ if (result == 0)
500
+ result = size_ == other.size_ ? 0 : (size_ < other.size_ ? -1 : 1);
501
+ return result;
502
+ }
503
+
504
+ FMT_CONSTEXPR_CHAR_TRAITS friend auto operator==(basic_string_view lhs,
505
+ basic_string_view rhs)
506
+ -> bool {
507
+ return lhs.compare(rhs) == 0;
508
+ }
509
+ friend auto operator!=(basic_string_view lhs, basic_string_view rhs) -> bool {
510
+ return lhs.compare(rhs) != 0;
511
+ }
512
+ friend auto operator<(basic_string_view lhs, basic_string_view rhs) -> bool {
513
+ return lhs.compare(rhs) < 0;
514
+ }
515
+ friend auto operator<=(basic_string_view lhs, basic_string_view rhs) -> bool {
516
+ return lhs.compare(rhs) <= 0;
517
+ }
518
+ friend auto operator>(basic_string_view lhs, basic_string_view rhs) -> bool {
519
+ return lhs.compare(rhs) > 0;
520
+ }
521
+ friend auto operator>=(basic_string_view lhs, basic_string_view rhs) -> bool {
522
+ return lhs.compare(rhs) >= 0;
523
+ }
524
+ };
525
+
526
+ using string_view = basic_string_view<char>;
527
+
528
+ /** Specifies if ``T`` is a character type. Can be specialized by users. */
529
+ template <typename T> struct is_char : std::false_type {};
530
+ template <> struct is_char<char> : std::true_type {};
531
+
532
+ // Returns a string view of `s`.
533
+ template <typename Char, FMT_ENABLE_IF(is_char<Char>::value)>
534
+ FMT_INLINE auto to_string_view(const Char* s) -> basic_string_view<Char> {
535
+ return s;
536
+ }
537
+ template <typename Char, typename Traits, typename Alloc>
538
+ inline auto to_string_view(const std::basic_string<Char, Traits, Alloc>& s)
539
+ -> basic_string_view<Char> {
540
+ return s;
541
+ }
542
+ template <typename Char>
543
+ constexpr auto to_string_view(basic_string_view<Char> s)
544
+ -> basic_string_view<Char> {
545
+ return s;
546
+ }
547
+ template <typename Char,
548
+ FMT_ENABLE_IF(!std::is_empty<detail::std_string_view<Char>>::value)>
549
+ inline auto to_string_view(detail::std_string_view<Char> s)
550
+ -> basic_string_view<Char> {
551
+ return s;
552
+ }
553
+
554
+ // A base class for compile-time strings. It is defined in the fmt namespace to
555
+ // make formatting functions visible via ADL, e.g. format(FMT_STRING("{}"), 42).
556
+ struct compile_string {};
557
+
558
+ template <typename S>
559
+ struct is_compile_string : std::is_base_of<compile_string, S> {};
560
+
561
+ template <typename S, FMT_ENABLE_IF(is_compile_string<S>::value)>
562
+ constexpr auto to_string_view(const S& s)
563
+ -> basic_string_view<typename S::char_type> {
564
+ return basic_string_view<typename S::char_type>(s);
565
+ }
566
+
567
+ FMT_BEGIN_DETAIL_NAMESPACE
568
+
569
+ void to_string_view(...);
570
+ using fmt::to_string_view;
571
+
572
+ // Specifies whether S is a string type convertible to fmt::basic_string_view.
573
+ // It should be a constexpr function but MSVC 2017 fails to compile it in
574
+ // enable_if and MSVC 2015 fails to compile it as an alias template.
575
+ template <typename S>
576
+ struct is_string : std::is_class<decltype(to_string_view(std::declval<S>()))> {
577
+ };
578
+
579
+ template <typename S, typename = void> struct char_t_impl {};
580
+ template <typename S> struct char_t_impl<S, enable_if_t<is_string<S>::value>> {
581
+ using result = decltype(to_string_view(std::declval<S>()));
582
+ using type = typename result::value_type;
583
+ };
584
+
585
+ // Reports a compile-time error if S is not a valid format string.
586
+ template <typename..., typename S, FMT_ENABLE_IF(!is_compile_string<S>::value)>
587
+ FMT_INLINE void check_format_string(const S&) {
588
+ #ifdef FMT_ENFORCE_COMPILE_STRING
589
+ static_assert(is_compile_string<S>::value,
590
+ "FMT_ENFORCE_COMPILE_STRING requires all format strings to use "
591
+ "FMT_STRING.");
592
+ #endif
593
+ }
594
+ template <typename..., typename S, FMT_ENABLE_IF(is_compile_string<S>::value)>
595
+ void check_format_string(S);
596
+
597
+ FMT_NORETURN FMT_API void throw_format_error(const char* message);
598
+
599
+ struct error_handler {
600
+ constexpr error_handler() = default;
601
+ constexpr error_handler(const error_handler&) = default;
602
+
603
+ // This function is intentionally not constexpr to give a compile-time error.
604
+ void on_error(const char* message) { throw_format_error(message); }
605
+ };
606
+ FMT_END_DETAIL_NAMESPACE
607
+
608
+ /** String's character type. */
609
+ template <typename S> using char_t = typename detail::char_t_impl<S>::type;
610
+
611
+ /**
612
+ \rst
613
+ Parsing context consisting of a format string range being parsed and an
614
+ argument counter for automatic indexing.
615
+ You can use the ``format_parse_context`` type alias for ``char`` instead.
616
+ \endrst
617
+ */
618
+ template <typename Char, typename ErrorHandler = detail::error_handler>
619
+ class basic_format_parse_context : private ErrorHandler {
620
+ private:
621
+ basic_string_view<Char> format_str_;
622
+ int next_arg_id_;
623
+
624
+ public:
625
+ using char_type = Char;
626
+ using iterator = typename basic_string_view<Char>::iterator;
627
+
628
+ explicit constexpr basic_format_parse_context(
629
+ basic_string_view<Char> format_str, ErrorHandler eh = {},
630
+ int next_arg_id = 0)
631
+ : ErrorHandler(eh), format_str_(format_str), next_arg_id_(next_arg_id) {}
632
+
633
+ /**
634
+ Returns an iterator to the beginning of the format string range being
635
+ parsed.
636
+ */
637
+ constexpr auto begin() const FMT_NOEXCEPT -> iterator {
638
+ return format_str_.begin();
639
+ }
640
+
641
+ /**
642
+ Returns an iterator past the end of the format string range being parsed.
643
+ */
644
+ constexpr auto end() const FMT_NOEXCEPT -> iterator {
645
+ return format_str_.end();
646
+ }
647
+
648
+ /** Advances the begin iterator to ``it``. */
649
+ FMT_CONSTEXPR void advance_to(iterator it) {
650
+ format_str_.remove_prefix(detail::to_unsigned(it - begin()));
651
+ }
652
+
653
+ /**
654
+ Reports an error if using the manual argument indexing; otherwise returns
655
+ the next argument index and switches to the automatic indexing.
656
+ */
657
+ FMT_CONSTEXPR auto next_arg_id() -> int {
658
+ // Don't check if the argument id is valid to avoid overhead and because it
659
+ // will be checked during formatting anyway.
660
+ if (next_arg_id_ >= 0) return next_arg_id_++;
661
+ on_error("cannot switch from manual to automatic argument indexing");
662
+ return 0;
663
+ }
664
+
665
+ /**
666
+ Reports an error if using the automatic argument indexing; otherwise
667
+ switches to the manual indexing.
668
+ */
669
+ FMT_CONSTEXPR void check_arg_id(int) {
670
+ if (next_arg_id_ > 0)
671
+ on_error("cannot switch from automatic to manual argument indexing");
672
+ else
673
+ next_arg_id_ = -1;
674
+ }
675
+
676
+ FMT_CONSTEXPR void check_arg_id(basic_string_view<Char>) {}
677
+
678
+ FMT_CONSTEXPR void on_error(const char* message) {
679
+ ErrorHandler::on_error(message);
680
+ }
681
+
682
+ constexpr auto error_handler() const -> ErrorHandler { return *this; }
683
+ };
684
+
685
+ using format_parse_context = basic_format_parse_context<char>;
686
+
687
+ template <typename Context> class basic_format_arg;
688
+ template <typename Context> class basic_format_args;
689
+ template <typename Context> class dynamic_format_arg_store;
690
+
691
+ // A formatter for objects of type T.
692
+ template <typename T, typename Char = char, typename Enable = void>
693
+ struct formatter {
694
+ // A deleted default constructor indicates a disabled formatter.
695
+ formatter() = delete;
696
+ };
697
+
698
+ // Specifies if T has an enabled formatter specialization. A type can be
699
+ // formattable even if it doesn't have a formatter e.g. via a conversion.
700
+ template <typename T, typename Context>
701
+ using has_formatter =
702
+ std::is_constructible<typename Context::template formatter_type<T>>;
703
+
704
+ // Checks whether T is a container with contiguous storage.
705
+ template <typename T> struct is_contiguous : std::false_type {};
706
+ template <typename Char>
707
+ struct is_contiguous<std::basic_string<Char>> : std::true_type {};
708
+
709
+ class appender;
710
+
711
+ FMT_BEGIN_DETAIL_NAMESPACE
712
+
713
+ template <typename Context, typename T>
714
+ constexpr auto has_const_formatter_impl(T*)
715
+ -> decltype(typename Context::template formatter_type<T>().format(
716
+ std::declval<const T&>(), std::declval<Context&>()),
717
+ true) {
718
+ return true;
719
+ }
720
+ template <typename Context>
721
+ constexpr auto has_const_formatter_impl(...) -> bool {
722
+ return false;
723
+ }
724
+ template <typename T, typename Context>
725
+ constexpr auto has_const_formatter() -> bool {
726
+ return has_const_formatter_impl<Context>(static_cast<T*>(nullptr));
727
+ }
728
+
729
+ // Extracts a reference to the container from back_insert_iterator.
730
+ template <typename Container>
731
+ inline auto get_container(std::back_insert_iterator<Container> it)
732
+ -> Container& {
733
+ using bi_iterator = std::back_insert_iterator<Container>;
734
+ struct accessor : bi_iterator {
735
+ accessor(bi_iterator iter) : bi_iterator(iter) {}
736
+ using bi_iterator::container;
737
+ };
738
+ return *accessor(it).container;
739
+ }
740
+
741
+ template <typename Char, typename InputIt, typename OutputIt>
742
+ FMT_CONSTEXPR auto copy_str(InputIt begin, InputIt end, OutputIt out)
743
+ -> OutputIt {
744
+ while (begin != end) *out++ = static_cast<Char>(*begin++);
745
+ return out;
746
+ }
747
+
748
+ template <typename Char, typename T, typename U,
749
+ FMT_ENABLE_IF(
750
+ std::is_same<remove_const_t<T>, U>::value&& is_char<U>::value)>
751
+ FMT_CONSTEXPR auto copy_str(T* begin, T* end, U* out) -> U* {
752
+ if (is_constant_evaluated()) return copy_str<Char, T*, U*>(begin, end, out);
753
+ auto size = to_unsigned(end - begin);
754
+ memcpy(out, begin, size * sizeof(U));
755
+ return out + size;
756
+ }
757
+
758
+ /**
759
+ \rst
760
+ A contiguous memory buffer with an optional growing ability. It is an internal
761
+ class and shouldn't be used directly, only via `~fmt::basic_memory_buffer`.
762
+ \endrst
763
+ */
764
+ template <typename T> class buffer {
765
+ private:
766
+ T* ptr_;
767
+ size_t size_;
768
+ size_t capacity_;
769
+
770
+ protected:
771
+ // Don't initialize ptr_ since it is not accessed to save a few cycles.
772
+ FMT_MSC_WARNING(suppress : 26495)
773
+ buffer(size_t sz) FMT_NOEXCEPT : size_(sz), capacity_(sz) {}
774
+
775
+ FMT_CONSTEXPR20 buffer(T* p = nullptr, size_t sz = 0,
776
+ size_t cap = 0) FMT_NOEXCEPT : ptr_(p),
777
+ size_(sz),
778
+ capacity_(cap) {}
779
+
780
+ FMT_CONSTEXPR20 ~buffer() = default;
781
+ buffer(buffer&&) = default;
782
+
783
+ /** Sets the buffer data and capacity. */
784
+ FMT_CONSTEXPR void set(T* buf_data, size_t buf_capacity) FMT_NOEXCEPT {
785
+ ptr_ = buf_data;
786
+ capacity_ = buf_capacity;
787
+ }
788
+
789
+ /** Increases the buffer capacity to hold at least *capacity* elements. */
790
+ virtual FMT_CONSTEXPR20 void grow(size_t capacity) = 0;
791
+
792
+ public:
793
+ using value_type = T;
794
+ using const_reference = const T&;
795
+
796
+ buffer(const buffer&) = delete;
797
+ void operator=(const buffer&) = delete;
798
+
799
+ auto begin() FMT_NOEXCEPT -> T* { return ptr_; }
800
+ auto end() FMT_NOEXCEPT -> T* { return ptr_ + size_; }
801
+
802
+ auto begin() const FMT_NOEXCEPT -> const T* { return ptr_; }
803
+ auto end() const FMT_NOEXCEPT -> const T* { return ptr_ + size_; }
804
+
805
+ /** Returns the size of this buffer. */
806
+ constexpr auto size() const FMT_NOEXCEPT -> size_t { return size_; }
807
+
808
+ /** Returns the capacity of this buffer. */
809
+ constexpr auto capacity() const FMT_NOEXCEPT -> size_t { return capacity_; }
810
+
811
+ /** Returns a pointer to the buffer data. */
812
+ FMT_CONSTEXPR auto data() FMT_NOEXCEPT -> T* { return ptr_; }
813
+
814
+ /** Returns a pointer to the buffer data. */
815
+ FMT_CONSTEXPR auto data() const FMT_NOEXCEPT -> const T* { return ptr_; }
816
+
817
+ /** Clears this buffer. */
818
+ void clear() { size_ = 0; }
819
+
820
+ // Tries resizing the buffer to contain *count* elements. If T is a POD type
821
+ // the new elements may not be initialized.
822
+ FMT_CONSTEXPR20 void try_resize(size_t count) {
823
+ try_reserve(count);
824
+ size_ = count <= capacity_ ? count : capacity_;
825
+ }
826
+
827
+ // Tries increasing the buffer capacity to *new_capacity*. It can increase the
828
+ // capacity by a smaller amount than requested but guarantees there is space
829
+ // for at least one additional element either by increasing the capacity or by
830
+ // flushing the buffer if it is full.
831
+ FMT_CONSTEXPR20 void try_reserve(size_t new_capacity) {
832
+ if (new_capacity > capacity_) grow(new_capacity);
833
+ }
834
+
835
+ FMT_CONSTEXPR20 void push_back(const T& value) {
836
+ try_reserve(size_ + 1);
837
+ ptr_[size_++] = value;
838
+ }
839
+
840
+ /** Appends data to the end of the buffer. */
841
+ template <typename U> void append(const U* begin, const U* end);
842
+
843
+ template <typename I> FMT_CONSTEXPR auto operator[](I index) -> T& {
844
+ return ptr_[index];
845
+ }
846
+ template <typename I>
847
+ FMT_CONSTEXPR auto operator[](I index) const -> const T& {
848
+ return ptr_[index];
849
+ }
850
+ };
851
+
852
+ struct buffer_traits {
853
+ explicit buffer_traits(size_t) {}
854
+ auto count() const -> size_t { return 0; }
855
+ auto limit(size_t size) -> size_t { return size; }
856
+ };
857
+
858
+ class fixed_buffer_traits {
859
+ private:
860
+ size_t count_ = 0;
861
+ size_t limit_;
862
+
863
+ public:
864
+ explicit fixed_buffer_traits(size_t limit) : limit_(limit) {}
865
+ auto count() const -> size_t { return count_; }
866
+ auto limit(size_t size) -> size_t {
867
+ size_t n = limit_ > count_ ? limit_ - count_ : 0;
868
+ count_ += size;
869
+ return size < n ? size : n;
870
+ }
871
+ };
872
+
873
+ // A buffer that writes to an output iterator when flushed.
874
+ template <typename OutputIt, typename T, typename Traits = buffer_traits>
875
+ class iterator_buffer final : public Traits, public buffer<T> {
876
+ private:
877
+ OutputIt out_;
878
+ enum { buffer_size = 256 };
879
+ T data_[buffer_size];
880
+
881
+ protected:
882
+ FMT_CONSTEXPR20 void grow(size_t) override {
883
+ if (this->size() == buffer_size) flush();
884
+ }
885
+
886
+ void flush() {
887
+ auto size = this->size();
888
+ this->clear();
889
+ out_ = copy_str<T>(data_, data_ + this->limit(size), out_);
890
+ }
891
+
892
+ public:
893
+ explicit iterator_buffer(OutputIt out, size_t n = buffer_size)
894
+ : Traits(n), buffer<T>(data_, 0, buffer_size), out_(out) {}
895
+ iterator_buffer(iterator_buffer&& other)
896
+ : Traits(other), buffer<T>(data_, 0, buffer_size), out_(other.out_) {}
897
+ ~iterator_buffer() { flush(); }
898
+
899
+ auto out() -> OutputIt {
900
+ flush();
901
+ return out_;
902
+ }
903
+ auto count() const -> size_t { return Traits::count() + this->size(); }
904
+ };
905
+
906
+ template <typename T>
907
+ class iterator_buffer<T*, T, fixed_buffer_traits> final
908
+ : public fixed_buffer_traits,
909
+ public buffer<T> {
910
+ private:
911
+ T* out_;
912
+ enum { buffer_size = 256 };
913
+ T data_[buffer_size];
914
+
915
+ protected:
916
+ FMT_CONSTEXPR20 void grow(size_t) override {
917
+ if (this->size() == this->capacity()) flush();
918
+ }
919
+
920
+ void flush() {
921
+ size_t n = this->limit(this->size());
922
+ if (this->data() == out_) {
923
+ out_ += n;
924
+ this->set(data_, buffer_size);
925
+ }
926
+ this->clear();
927
+ }
928
+
929
+ public:
930
+ explicit iterator_buffer(T* out, size_t n = buffer_size)
931
+ : fixed_buffer_traits(n), buffer<T>(out, 0, n), out_(out) {}
932
+ iterator_buffer(iterator_buffer&& other)
933
+ : fixed_buffer_traits(other),
934
+ buffer<T>(std::move(other)),
935
+ out_(other.out_) {
936
+ if (this->data() != out_) {
937
+ this->set(data_, buffer_size);
938
+ this->clear();
939
+ }
940
+ }
941
+ ~iterator_buffer() { flush(); }
942
+
943
+ auto out() -> T* {
944
+ flush();
945
+ return out_;
946
+ }
947
+ auto count() const -> size_t {
948
+ return fixed_buffer_traits::count() + this->size();
949
+ }
950
+ };
951
+
952
+ template <typename T> class iterator_buffer<T*, T> final : public buffer<T> {
953
+ protected:
954
+ FMT_CONSTEXPR20 void grow(size_t) override {}
955
+
956
+ public:
957
+ explicit iterator_buffer(T* out, size_t = 0) : buffer<T>(out, 0, ~size_t()) {}
958
+
959
+ auto out() -> T* { return &*this->end(); }
960
+ };
961
+
962
+ // A buffer that writes to a container with the contiguous storage.
963
+ template <typename Container>
964
+ class iterator_buffer<std::back_insert_iterator<Container>,
965
+ enable_if_t<is_contiguous<Container>::value,
966
+ typename Container::value_type>>
967
+ final : public buffer<typename Container::value_type> {
968
+ private:
969
+ Container& container_;
970
+
971
+ protected:
972
+ FMT_CONSTEXPR20 void grow(size_t capacity) override {
973
+ container_.resize(capacity);
974
+ this->set(&container_[0], capacity);
975
+ }
976
+
977
+ public:
978
+ explicit iterator_buffer(Container& c)
979
+ : buffer<typename Container::value_type>(c.size()), container_(c) {}
980
+ explicit iterator_buffer(std::back_insert_iterator<Container> out, size_t = 0)
981
+ : iterator_buffer(get_container(out)) {}
982
+ auto out() -> std::back_insert_iterator<Container> {
983
+ return std::back_inserter(container_);
984
+ }
985
+ };
986
+
987
+ // A buffer that counts the number of code units written discarding the output.
988
+ template <typename T = char> class counting_buffer final : public buffer<T> {
989
+ private:
990
+ enum { buffer_size = 256 };
991
+ T data_[buffer_size];
992
+ size_t count_ = 0;
993
+
994
+ protected:
995
+ FMT_CONSTEXPR20 void grow(size_t) override {
996
+ if (this->size() != buffer_size) return;
997
+ count_ += this->size();
998
+ this->clear();
999
+ }
1000
+
1001
+ public:
1002
+ counting_buffer() : buffer<T>(data_, 0, buffer_size) {}
1003
+
1004
+ auto count() -> size_t { return count_ + this->size(); }
1005
+ };
1006
+
1007
+ template <typename T>
1008
+ using buffer_appender = conditional_t<std::is_same<T, char>::value, appender,
1009
+ std::back_insert_iterator<buffer<T>>>;
1010
+
1011
+ // Maps an output iterator to a buffer.
1012
+ template <typename T, typename OutputIt>
1013
+ auto get_buffer(OutputIt out) -> iterator_buffer<OutputIt, T> {
1014
+ return iterator_buffer<OutputIt, T>(out);
1015
+ }
1016
+
1017
+ template <typename Buffer>
1018
+ auto get_iterator(Buffer& buf) -> decltype(buf.out()) {
1019
+ return buf.out();
1020
+ }
1021
+ template <typename T> auto get_iterator(buffer<T>& buf) -> buffer_appender<T> {
1022
+ return buffer_appender<T>(buf);
1023
+ }
1024
+
1025
+ template <typename T, typename Char = char, typename Enable = void>
1026
+ struct fallback_formatter {
1027
+ fallback_formatter() = delete;
1028
+ };
1029
+
1030
+ // Specifies if T has an enabled fallback_formatter specialization.
1031
+ template <typename T, typename Char>
1032
+ using has_fallback_formatter =
1033
+ std::is_constructible<fallback_formatter<T, Char>>;
1034
+
1035
+ struct view {};
1036
+
1037
+ template <typename Char, typename T> struct named_arg : view {
1038
+ const Char* name;
1039
+ const T& value;
1040
+ named_arg(const Char* n, const T& v) : name(n), value(v) {}
1041
+ };
1042
+
1043
+ template <typename Char> struct named_arg_info {
1044
+ const Char* name;
1045
+ int id;
1046
+ };
1047
+
1048
+ template <typename T, typename Char, size_t NUM_ARGS, size_t NUM_NAMED_ARGS>
1049
+ struct arg_data {
1050
+ // args_[0].named_args points to named_args_ to avoid bloating format_args.
1051
+ // +1 to workaround a bug in gcc 7.5 that causes duplicated-branches warning.
1052
+ T args_[1 + (NUM_ARGS != 0 ? NUM_ARGS : +1)];
1053
+ named_arg_info<Char> named_args_[NUM_NAMED_ARGS];
1054
+
1055
+ template <typename... U>
1056
+ arg_data(const U&... init) : args_{T(named_args_, NUM_NAMED_ARGS), init...} {}
1057
+ arg_data(const arg_data& other) = delete;
1058
+ auto args() const -> const T* { return args_ + 1; }
1059
+ auto named_args() -> named_arg_info<Char>* { return named_args_; }
1060
+ };
1061
+
1062
+ template <typename T, typename Char, size_t NUM_ARGS>
1063
+ struct arg_data<T, Char, NUM_ARGS, 0> {
1064
+ // +1 to workaround a bug in gcc 7.5 that causes duplicated-branches warning.
1065
+ T args_[NUM_ARGS != 0 ? NUM_ARGS : +1];
1066
+
1067
+ template <typename... U>
1068
+ FMT_CONSTEXPR FMT_INLINE arg_data(const U&... init) : args_{init...} {}
1069
+ FMT_CONSTEXPR FMT_INLINE auto args() const -> const T* { return args_; }
1070
+ FMT_CONSTEXPR FMT_INLINE auto named_args() -> std::nullptr_t {
1071
+ return nullptr;
1072
+ }
1073
+ };
1074
+
1075
+ template <typename Char>
1076
+ inline void init_named_args(named_arg_info<Char>*, int, int) {}
1077
+
1078
+ template <typename T> struct is_named_arg : std::false_type {};
1079
+ template <typename T> struct is_statically_named_arg : std::false_type {};
1080
+
1081
+ template <typename T, typename Char>
1082
+ struct is_named_arg<named_arg<Char, T>> : std::true_type {};
1083
+
1084
+ template <typename Char, typename T, typename... Tail,
1085
+ FMT_ENABLE_IF(!is_named_arg<T>::value)>
1086
+ void init_named_args(named_arg_info<Char>* named_args, int arg_count,
1087
+ int named_arg_count, const T&, const Tail&... args) {
1088
+ init_named_args(named_args, arg_count + 1, named_arg_count, args...);
1089
+ }
1090
+
1091
+ template <typename Char, typename T, typename... Tail,
1092
+ FMT_ENABLE_IF(is_named_arg<T>::value)>
1093
+ void init_named_args(named_arg_info<Char>* named_args, int arg_count,
1094
+ int named_arg_count, const T& arg, const Tail&... args) {
1095
+ named_args[named_arg_count++] = {arg.name, arg_count};
1096
+ init_named_args(named_args, arg_count + 1, named_arg_count, args...);
1097
+ }
1098
+
1099
+ template <typename... Args>
1100
+ FMT_CONSTEXPR FMT_INLINE void init_named_args(std::nullptr_t, int, int,
1101
+ const Args&...) {}
1102
+
1103
+ template <bool B = false> constexpr auto count() -> size_t { return B ? 1 : 0; }
1104
+ template <bool B1, bool B2, bool... Tail> constexpr auto count() -> size_t {
1105
+ return (B1 ? 1 : 0) + count<B2, Tail...>();
1106
+ }
1107
+
1108
+ template <typename... Args> constexpr auto count_named_args() -> size_t {
1109
+ return count<is_named_arg<Args>::value...>();
1110
+ }
1111
+
1112
+ enum class type {
1113
+ none_type,
1114
+ // Integer types should go first,
1115
+ int_type,
1116
+ uint_type,
1117
+ long_long_type,
1118
+ ulong_long_type,
1119
+ int128_type,
1120
+ uint128_type,
1121
+ bool_type,
1122
+ char_type,
1123
+ last_integer_type = char_type,
1124
+ // followed by floating-point types.
1125
+ float_type,
1126
+ double_type,
1127
+ long_double_type,
1128
+ last_numeric_type = long_double_type,
1129
+ cstring_type,
1130
+ string_type,
1131
+ pointer_type,
1132
+ custom_type
1133
+ };
1134
+
1135
+ // Maps core type T to the corresponding type enum constant.
1136
+ template <typename T, typename Char>
1137
+ struct type_constant : std::integral_constant<type, type::custom_type> {};
1138
+
1139
+ #define FMT_TYPE_CONSTANT(Type, constant) \
1140
+ template <typename Char> \
1141
+ struct type_constant<Type, Char> \
1142
+ : std::integral_constant<type, type::constant> {}
1143
+
1144
+ FMT_TYPE_CONSTANT(int, int_type);
1145
+ FMT_TYPE_CONSTANT(unsigned, uint_type);
1146
+ FMT_TYPE_CONSTANT(long long, long_long_type);
1147
+ FMT_TYPE_CONSTANT(unsigned long long, ulong_long_type);
1148
+ FMT_TYPE_CONSTANT(int128_t, int128_type);
1149
+ FMT_TYPE_CONSTANT(uint128_t, uint128_type);
1150
+ FMT_TYPE_CONSTANT(bool, bool_type);
1151
+ FMT_TYPE_CONSTANT(Char, char_type);
1152
+ FMT_TYPE_CONSTANT(float, float_type);
1153
+ FMT_TYPE_CONSTANT(double, double_type);
1154
+ FMT_TYPE_CONSTANT(long double, long_double_type);
1155
+ FMT_TYPE_CONSTANT(const Char*, cstring_type);
1156
+ FMT_TYPE_CONSTANT(basic_string_view<Char>, string_type);
1157
+ FMT_TYPE_CONSTANT(const void*, pointer_type);
1158
+
1159
+ constexpr bool is_integral_type(type t) {
1160
+ return t > type::none_type && t <= type::last_integer_type;
1161
+ }
1162
+
1163
+ constexpr bool is_arithmetic_type(type t) {
1164
+ return t > type::none_type && t <= type::last_numeric_type;
1165
+ }
1166
+
1167
+ struct unformattable {};
1168
+ struct unformattable_char : unformattable {};
1169
+ struct unformattable_const : unformattable {};
1170
+ struct unformattable_pointer : unformattable {};
1171
+
1172
+ template <typename Char> struct string_value {
1173
+ const Char* data;
1174
+ size_t size;
1175
+ };
1176
+
1177
+ template <typename Char> struct named_arg_value {
1178
+ const named_arg_info<Char>* data;
1179
+ size_t size;
1180
+ };
1181
+
1182
+ template <typename Context> struct custom_value {
1183
+ using parse_context = typename Context::parse_context_type;
1184
+ void* value;
1185
+ void (*format)(void* arg, parse_context& parse_ctx, Context& ctx);
1186
+ };
1187
+
1188
+ // A formatting argument value.
1189
+ template <typename Context> class value {
1190
+ public:
1191
+ using char_type = typename Context::char_type;
1192
+
1193
+ union {
1194
+ monostate no_value;
1195
+ int int_value;
1196
+ unsigned uint_value;
1197
+ long long long_long_value;
1198
+ unsigned long long ulong_long_value;
1199
+ int128_t int128_value;
1200
+ uint128_t uint128_value;
1201
+ bool bool_value;
1202
+ char_type char_value;
1203
+ float float_value;
1204
+ double double_value;
1205
+ long double long_double_value;
1206
+ const void* pointer;
1207
+ string_value<char_type> string;
1208
+ custom_value<Context> custom;
1209
+ named_arg_value<char_type> named_args;
1210
+ };
1211
+
1212
+ constexpr FMT_INLINE value() : no_value() {}
1213
+ constexpr FMT_INLINE value(int val) : int_value(val) {}
1214
+ constexpr FMT_INLINE value(unsigned val) : uint_value(val) {}
1215
+ constexpr FMT_INLINE value(long long val) : long_long_value(val) {}
1216
+ constexpr FMT_INLINE value(unsigned long long val) : ulong_long_value(val) {}
1217
+ FMT_INLINE value(int128_t val) : int128_value(val) {}
1218
+ FMT_INLINE value(uint128_t val) : uint128_value(val) {}
1219
+ constexpr FMT_INLINE value(float val) : float_value(val) {}
1220
+ constexpr FMT_INLINE value(double val) : double_value(val) {}
1221
+ FMT_INLINE value(long double val) : long_double_value(val) {}
1222
+ constexpr FMT_INLINE value(bool val) : bool_value(val) {}
1223
+ constexpr FMT_INLINE value(char_type val) : char_value(val) {}
1224
+ FMT_CONSTEXPR FMT_INLINE value(const char_type* val) {
1225
+ string.data = val;
1226
+ if (is_constant_evaluated()) string.size = {};
1227
+ }
1228
+ FMT_CONSTEXPR FMT_INLINE value(basic_string_view<char_type> val) {
1229
+ string.data = val.data();
1230
+ string.size = val.size();
1231
+ }
1232
+ FMT_INLINE value(const void* val) : pointer(val) {}
1233
+ FMT_INLINE value(const named_arg_info<char_type>* args, size_t size)
1234
+ : named_args{args, size} {}
1235
+
1236
+ template <typename T> FMT_CONSTEXPR FMT_INLINE value(T& val) {
1237
+ using value_type = remove_cvref_t<T>;
1238
+ custom.value = const_cast<value_type*>(&val);
1239
+ // Get the formatter type through the context to allow different contexts
1240
+ // have different extension points, e.g. `formatter<T>` for `format` and
1241
+ // `printf_formatter<T>` for `printf`.
1242
+ custom.format = format_custom_arg<
1243
+ value_type,
1244
+ conditional_t<has_formatter<value_type, Context>::value,
1245
+ typename Context::template formatter_type<value_type>,
1246
+ fallback_formatter<value_type, char_type>>>;
1247
+ }
1248
+ value(unformattable);
1249
+ value(unformattable_char);
1250
+ value(unformattable_const);
1251
+ value(unformattable_pointer);
1252
+
1253
+ private:
1254
+ // Formats an argument of a custom type, such as a user-defined class.
1255
+ template <typename T, typename Formatter>
1256
+ static void format_custom_arg(void* arg,
1257
+ typename Context::parse_context_type& parse_ctx,
1258
+ Context& ctx) {
1259
+ auto f = Formatter();
1260
+ parse_ctx.advance_to(f.parse(parse_ctx));
1261
+ using qualified_type =
1262
+ conditional_t<has_const_formatter<T, Context>(), const T, T>;
1263
+ ctx.advance_to(f.format(*static_cast<qualified_type*>(arg), ctx));
1264
+ }
1265
+ };
1266
+
1267
+ template <typename Context, typename T>
1268
+ FMT_CONSTEXPR auto make_arg(const T& value) -> basic_format_arg<Context>;
1269
+
1270
+ // To minimize the number of types we need to deal with, long is translated
1271
+ // either to int or to long long depending on its size.
1272
+ enum { long_short = sizeof(long) == sizeof(int) };
1273
+ using long_type = conditional_t<long_short, int, long long>;
1274
+ using ulong_type = conditional_t<long_short, unsigned, unsigned long long>;
1275
+
1276
+ // Maps formatting arguments to core types.
1277
+ // arg_mapper reports errors by returning unformattable instead of using
1278
+ // static_assert because it's used in the is_formattable trait.
1279
+ template <typename Context> struct arg_mapper {
1280
+ using char_type = typename Context::char_type;
1281
+
1282
+ FMT_CONSTEXPR FMT_INLINE auto map(signed char val) -> int { return val; }
1283
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned char val) -> unsigned {
1284
+ return val;
1285
+ }
1286
+ FMT_CONSTEXPR FMT_INLINE auto map(short val) -> int { return val; }
1287
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned short val) -> unsigned {
1288
+ return val;
1289
+ }
1290
+ FMT_CONSTEXPR FMT_INLINE auto map(int val) -> int { return val; }
1291
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned val) -> unsigned { return val; }
1292
+ FMT_CONSTEXPR FMT_INLINE auto map(long val) -> long_type { return val; }
1293
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned long val) -> ulong_type {
1294
+ return val;
1295
+ }
1296
+ FMT_CONSTEXPR FMT_INLINE auto map(long long val) -> long long { return val; }
1297
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned long long val)
1298
+ -> unsigned long long {
1299
+ return val;
1300
+ }
1301
+ FMT_CONSTEXPR FMT_INLINE auto map(int128_t val) -> int128_t { return val; }
1302
+ FMT_CONSTEXPR FMT_INLINE auto map(uint128_t val) -> uint128_t { return val; }
1303
+ FMT_CONSTEXPR FMT_INLINE auto map(bool val) -> bool { return val; }
1304
+
1305
+ template <typename T, FMT_ENABLE_IF(std::is_same<T, char>::value ||
1306
+ std::is_same<T, char_type>::value)>
1307
+ FMT_CONSTEXPR FMT_INLINE auto map(T val) -> char_type {
1308
+ return val;
1309
+ }
1310
+ template <typename T, enable_if_t<(std::is_same<T, wchar_t>::value ||
1311
+ #ifdef __cpp_char8_t
1312
+ std::is_same<T, char8_t>::value ||
1313
+ #endif
1314
+ std::is_same<T, char16_t>::value ||
1315
+ std::is_same<T, char32_t>::value) &&
1316
+ !std::is_same<T, char_type>::value,
1317
+ int> = 0>
1318
+ FMT_CONSTEXPR FMT_INLINE auto map(T) -> unformattable_char {
1319
+ return {};
1320
+ }
1321
+
1322
+ FMT_CONSTEXPR FMT_INLINE auto map(float val) -> float { return val; }
1323
+ FMT_CONSTEXPR FMT_INLINE auto map(double val) -> double { return val; }
1324
+ FMT_CONSTEXPR FMT_INLINE auto map(long double val) -> long double {
1325
+ return val;
1326
+ }
1327
+
1328
+ FMT_CONSTEXPR FMT_INLINE auto map(char_type* val) -> const char_type* {
1329
+ return val;
1330
+ }
1331
+ FMT_CONSTEXPR FMT_INLINE auto map(const char_type* val) -> const char_type* {
1332
+ return val;
1333
+ }
1334
+ template <typename T,
1335
+ FMT_ENABLE_IF(is_string<T>::value && !std::is_pointer<T>::value &&
1336
+ std::is_same<char_type, char_t<T>>::value)>
1337
+ FMT_CONSTEXPR FMT_INLINE auto map(const T& val)
1338
+ -> basic_string_view<char_type> {
1339
+ return to_string_view(val);
1340
+ }
1341
+ template <typename T,
1342
+ FMT_ENABLE_IF(is_string<T>::value && !std::is_pointer<T>::value &&
1343
+ !std::is_same<char_type, char_t<T>>::value)>
1344
+ FMT_CONSTEXPR FMT_INLINE auto map(const T&) -> unformattable_char {
1345
+ return {};
1346
+ }
1347
+ template <typename T,
1348
+ FMT_ENABLE_IF(
1349
+ std::is_constructible<basic_string_view<char_type>, T>::value &&
1350
+ !is_string<T>::value && !has_formatter<T, Context>::value &&
1351
+ !has_fallback_formatter<T, char_type>::value)>
1352
+ FMT_CONSTEXPR FMT_INLINE auto map(const T& val)
1353
+ -> basic_string_view<char_type> {
1354
+ return basic_string_view<char_type>(val);
1355
+ }
1356
+ template <
1357
+ typename T,
1358
+ FMT_ENABLE_IF(
1359
+ std::is_constructible<std_string_view<char_type>, T>::value &&
1360
+ !std::is_constructible<basic_string_view<char_type>, T>::value &&
1361
+ !is_string<T>::value && !has_formatter<T, Context>::value &&
1362
+ !has_fallback_formatter<T, char_type>::value)>
1363
+ FMT_CONSTEXPR FMT_INLINE auto map(const T& val)
1364
+ -> basic_string_view<char_type> {
1365
+ return std_string_view<char_type>(val);
1366
+ }
1367
+
1368
+ using cstring_result = conditional_t<std::is_same<char_type, char>::value,
1369
+ const char*, unformattable_pointer>;
1370
+
1371
+ FMT_CONSTEXPR FMT_INLINE auto map(const signed char* val) -> cstring_result {
1372
+ return map(reinterpret_cast<const char*>(val));
1373
+ }
1374
+ FMT_CONSTEXPR FMT_INLINE auto map(const unsigned char* val)
1375
+ -> cstring_result {
1376
+ return map(reinterpret_cast<const char*>(val));
1377
+ }
1378
+ FMT_CONSTEXPR FMT_INLINE auto map(signed char* val) -> cstring_result {
1379
+ return map(reinterpret_cast<const char*>(val));
1380
+ }
1381
+ FMT_CONSTEXPR FMT_INLINE auto map(unsigned char* val) -> cstring_result {
1382
+ return map(reinterpret_cast<const char*>(val));
1383
+ }
1384
+
1385
+ FMT_CONSTEXPR FMT_INLINE auto map(void* val) -> const void* { return val; }
1386
+ FMT_CONSTEXPR FMT_INLINE auto map(const void* val) -> const void* {
1387
+ return val;
1388
+ }
1389
+ FMT_CONSTEXPR FMT_INLINE auto map(std::nullptr_t val) -> const void* {
1390
+ return val;
1391
+ }
1392
+
1393
+ // We use SFINAE instead of a const T* parameter to avoid conflicting with
1394
+ // the C array overload.
1395
+ template <
1396
+ typename T,
1397
+ FMT_ENABLE_IF(
1398
+ std::is_member_pointer<T>::value ||
1399
+ std::is_function<typename std::remove_pointer<T>::type>::value ||
1400
+ (std::is_convertible<const T&, const void*>::value &&
1401
+ !std::is_convertible<const T&, const char_type*>::value))>
1402
+ FMT_CONSTEXPR auto map(const T&) -> unformattable_pointer {
1403
+ return {};
1404
+ }
1405
+
1406
+ template <typename T, std::size_t N,
1407
+ FMT_ENABLE_IF(!std::is_same<T, wchar_t>::value)>
1408
+ FMT_CONSTEXPR FMT_INLINE auto map(const T (&values)[N]) -> const T (&)[N] {
1409
+ return values;
1410
+ }
1411
+
1412
+ template <typename T,
1413
+ FMT_ENABLE_IF(std::is_enum<T>::value &&
1414
+ (std::is_convertible<T, int>::value ||
1415
+ std::is_same<T, detail::byte>::value) &&
1416
+ !has_formatter<T, Context>::value &&
1417
+ !has_fallback_formatter<T, char_type>::value)>
1418
+ FMT_CONSTEXPR FMT_INLINE auto map(const T& val)
1419
+ -> decltype(std::declval<arg_mapper>().map(
1420
+ static_cast<typename std::underlying_type<T>::type>(val))) {
1421
+ return map(static_cast<typename std::underlying_type<T>::type>(val));
1422
+ }
1423
+
1424
+ template <typename T, typename U = remove_cvref_t<T>>
1425
+ struct formattable
1426
+ : bool_constant<has_const_formatter<U, Context>() ||
1427
+ !std::is_const<remove_reference_t<T>>::value ||
1428
+ has_fallback_formatter<U, char_type>::value> {};
1429
+
1430
+ #if FMT_MSC_VER != 0 && FMT_MSC_VER < 1910
1431
+ // Workaround a bug in MSVC.
1432
+ template <typename T> FMT_CONSTEXPR FMT_INLINE auto do_map(T&& val) -> T& {
1433
+ return val;
1434
+ }
1435
+ #else
1436
+ template <typename T, FMT_ENABLE_IF(formattable<T>::value)>
1437
+ FMT_CONSTEXPR FMT_INLINE auto do_map(T&& val) -> T& {
1438
+ return val;
1439
+ }
1440
+ template <typename T, FMT_ENABLE_IF(!formattable<T>::value)>
1441
+ FMT_CONSTEXPR FMT_INLINE auto do_map(T&&) -> unformattable_const {
1442
+ return {};
1443
+ }
1444
+ #endif
1445
+
1446
+ template <typename T, typename U = remove_cvref_t<T>,
1447
+ FMT_ENABLE_IF(!is_string<U>::value && !is_char<U>::value &&
1448
+ !std::is_array<U>::value &&
1449
+ (has_formatter<U, Context>::value ||
1450
+ has_fallback_formatter<U, char_type>::value))>
1451
+ FMT_CONSTEXPR FMT_INLINE auto map(T&& val)
1452
+ -> decltype(this->do_map(std::forward<T>(val))) {
1453
+ return do_map(std::forward<T>(val));
1454
+ }
1455
+
1456
+ template <typename T, FMT_ENABLE_IF(is_named_arg<T>::value)>
1457
+ FMT_CONSTEXPR FMT_INLINE auto map(const T& named_arg)
1458
+ -> decltype(std::declval<arg_mapper>().map(named_arg.value)) {
1459
+ return map(named_arg.value);
1460
+ }
1461
+
1462
+ auto map(...) -> unformattable { return {}; }
1463
+ };
1464
+
1465
+ // A type constant after applying arg_mapper<Context>.
1466
+ template <typename T, typename Context>
1467
+ using mapped_type_constant =
1468
+ type_constant<decltype(arg_mapper<Context>().map(std::declval<const T&>())),
1469
+ typename Context::char_type>;
1470
+
1471
+ enum { packed_arg_bits = 4 };
1472
+ // Maximum number of arguments with packed types.
1473
+ enum { max_packed_args = 62 / packed_arg_bits };
1474
+ enum : unsigned long long { is_unpacked_bit = 1ULL << 63 };
1475
+ enum : unsigned long long { has_named_args_bit = 1ULL << 62 };
1476
+
1477
+ FMT_END_DETAIL_NAMESPACE
1478
+
1479
+ // An output iterator that appends to a buffer.
1480
+ // It is used to reduce symbol sizes for the common case.
1481
+ class appender : public std::back_insert_iterator<detail::buffer<char>> {
1482
+ using base = std::back_insert_iterator<detail::buffer<char>>;
1483
+
1484
+ template <typename T>
1485
+ friend auto get_buffer(appender out) -> detail::buffer<char>& {
1486
+ return detail::get_container(out);
1487
+ }
1488
+
1489
+ public:
1490
+ using std::back_insert_iterator<detail::buffer<char>>::back_insert_iterator;
1491
+ appender(base it) : base(it) {}
1492
+ using _Unchecked_type = appender; // Mark iterator as checked.
1493
+
1494
+ auto operator++() -> appender& {
1495
+ base::operator++();
1496
+ return *this;
1497
+ }
1498
+
1499
+ auto operator++(int) -> appender {
1500
+ auto tmp = *this;
1501
+ ++*this;
1502
+ return tmp;
1503
+ }
1504
+ };
1505
+
1506
+ // A formatting argument. It is a trivially copyable/constructible type to
1507
+ // allow storage in basic_memory_buffer.
1508
+ template <typename Context> class basic_format_arg {
1509
+ private:
1510
+ detail::value<Context> value_;
1511
+ detail::type type_;
1512
+
1513
+ template <typename ContextType, typename T>
1514
+ friend FMT_CONSTEXPR auto detail::make_arg(const T& value)
1515
+ -> basic_format_arg<ContextType>;
1516
+
1517
+ template <typename Visitor, typename Ctx>
1518
+ friend FMT_CONSTEXPR auto visit_format_arg(Visitor&& vis,
1519
+ const basic_format_arg<Ctx>& arg)
1520
+ -> decltype(vis(0));
1521
+
1522
+ friend class basic_format_args<Context>;
1523
+ friend class dynamic_format_arg_store<Context>;
1524
+
1525
+ using char_type = typename Context::char_type;
1526
+
1527
+ template <typename T, typename Char, size_t NUM_ARGS, size_t NUM_NAMED_ARGS>
1528
+ friend struct detail::arg_data;
1529
+
1530
+ basic_format_arg(const detail::named_arg_info<char_type>* args, size_t size)
1531
+ : value_(args, size) {}
1532
+
1533
+ public:
1534
+ class handle {
1535
+ public:
1536
+ explicit handle(detail::custom_value<Context> custom) : custom_(custom) {}
1537
+
1538
+ void format(typename Context::parse_context_type& parse_ctx,
1539
+ Context& ctx) const {
1540
+ custom_.format(custom_.value, parse_ctx, ctx);
1541
+ }
1542
+
1543
+ private:
1544
+ detail::custom_value<Context> custom_;
1545
+ };
1546
+
1547
+ constexpr basic_format_arg() : type_(detail::type::none_type) {}
1548
+
1549
+ constexpr explicit operator bool() const FMT_NOEXCEPT {
1550
+ return type_ != detail::type::none_type;
1551
+ }
1552
+
1553
+ auto type() const -> detail::type { return type_; }
1554
+
1555
+ auto is_integral() const -> bool { return detail::is_integral_type(type_); }
1556
+ auto is_arithmetic() const -> bool {
1557
+ return detail::is_arithmetic_type(type_);
1558
+ }
1559
+ };
1560
+
1561
+ /**
1562
+ \rst
1563
+ Visits an argument dispatching to the appropriate visit method based on
1564
+ the argument type. For example, if the argument type is ``double`` then
1565
+ ``vis(value)`` will be called with the value of type ``double``.
1566
+ \endrst
1567
+ */
1568
+ template <typename Visitor, typename Context>
1569
+ FMT_CONSTEXPR FMT_INLINE auto visit_format_arg(
1570
+ Visitor&& vis, const basic_format_arg<Context>& arg) -> decltype(vis(0)) {
1571
+ switch (arg.type_) {
1572
+ case detail::type::none_type:
1573
+ break;
1574
+ case detail::type::int_type:
1575
+ return vis(arg.value_.int_value);
1576
+ case detail::type::uint_type:
1577
+ return vis(arg.value_.uint_value);
1578
+ case detail::type::long_long_type:
1579
+ return vis(arg.value_.long_long_value);
1580
+ case detail::type::ulong_long_type:
1581
+ return vis(arg.value_.ulong_long_value);
1582
+ case detail::type::int128_type:
1583
+ return vis(detail::convert_for_visit(arg.value_.int128_value));
1584
+ case detail::type::uint128_type:
1585
+ return vis(detail::convert_for_visit(arg.value_.uint128_value));
1586
+ case detail::type::bool_type:
1587
+ return vis(arg.value_.bool_value);
1588
+ case detail::type::char_type:
1589
+ return vis(arg.value_.char_value);
1590
+ case detail::type::float_type:
1591
+ return vis(arg.value_.float_value);
1592
+ case detail::type::double_type:
1593
+ return vis(arg.value_.double_value);
1594
+ case detail::type::long_double_type:
1595
+ return vis(arg.value_.long_double_value);
1596
+ case detail::type::cstring_type:
1597
+ return vis(arg.value_.string.data);
1598
+ case detail::type::string_type:
1599
+ using sv = basic_string_view<typename Context::char_type>;
1600
+ return vis(sv(arg.value_.string.data, arg.value_.string.size));
1601
+ case detail::type::pointer_type:
1602
+ return vis(arg.value_.pointer);
1603
+ case detail::type::custom_type:
1604
+ return vis(typename basic_format_arg<Context>::handle(arg.value_.custom));
1605
+ }
1606
+ return vis(monostate());
1607
+ }
1608
+
1609
+ FMT_BEGIN_DETAIL_NAMESPACE
1610
+
1611
+ template <typename Char, typename InputIt>
1612
+ auto copy_str(InputIt begin, InputIt end, appender out) -> appender {
1613
+ get_container(out).append(begin, end);
1614
+ return out;
1615
+ }
1616
+
1617
+ #if FMT_GCC_VERSION && FMT_GCC_VERSION < 500
1618
+ // A workaround for gcc 4.8 to make void_t work in a SFINAE context.
1619
+ template <typename... Ts> struct void_t_impl { using type = void; };
1620
+ template <typename... Ts>
1621
+ using void_t = typename detail::void_t_impl<Ts...>::type;
1622
+ #else
1623
+ template <typename...> using void_t = void;
1624
+ #endif
1625
+
1626
+ template <typename It, typename T, typename Enable = void>
1627
+ struct is_output_iterator : std::false_type {};
1628
+
1629
+ template <typename It, typename T>
1630
+ struct is_output_iterator<
1631
+ It, T,
1632
+ void_t<typename std::iterator_traits<It>::iterator_category,
1633
+ decltype(*std::declval<It>() = std::declval<T>())>>
1634
+ : std::true_type {};
1635
+
1636
+ template <typename OutputIt>
1637
+ struct is_back_insert_iterator : std::false_type {};
1638
+ template <typename Container>
1639
+ struct is_back_insert_iterator<std::back_insert_iterator<Container>>
1640
+ : std::true_type {};
1641
+
1642
+ template <typename OutputIt>
1643
+ struct is_contiguous_back_insert_iterator : std::false_type {};
1644
+ template <typename Container>
1645
+ struct is_contiguous_back_insert_iterator<std::back_insert_iterator<Container>>
1646
+ : is_contiguous<Container> {};
1647
+ template <>
1648
+ struct is_contiguous_back_insert_iterator<appender> : std::true_type {};
1649
+
1650
+ // A type-erased reference to an std::locale to avoid heavy <locale> include.
1651
+ class locale_ref {
1652
+ private:
1653
+ const void* locale_; // A type-erased pointer to std::locale.
1654
+
1655
+ public:
1656
+ constexpr locale_ref() : locale_(nullptr) {}
1657
+ template <typename Locale> explicit locale_ref(const Locale& loc);
1658
+
1659
+ explicit operator bool() const FMT_NOEXCEPT { return locale_ != nullptr; }
1660
+
1661
+ template <typename Locale> auto get() const -> Locale;
1662
+ };
1663
+
1664
+ template <typename> constexpr auto encode_types() -> unsigned long long {
1665
+ return 0;
1666
+ }
1667
+
1668
+ template <typename Context, typename Arg, typename... Args>
1669
+ constexpr auto encode_types() -> unsigned long long {
1670
+ return static_cast<unsigned>(mapped_type_constant<Arg, Context>::value) |
1671
+ (encode_types<Context, Args...>() << packed_arg_bits);
1672
+ }
1673
+
1674
+ template <typename Context, typename T>
1675
+ FMT_CONSTEXPR auto make_arg(const T& value) -> basic_format_arg<Context> {
1676
+ basic_format_arg<Context> arg;
1677
+ arg.type_ = mapped_type_constant<T, Context>::value;
1678
+ arg.value_ = arg_mapper<Context>().map(value);
1679
+ return arg;
1680
+ }
1681
+
1682
+ // The type template parameter is there to avoid an ODR violation when using
1683
+ // a fallback formatter in one translation unit and an implicit conversion in
1684
+ // another (not recommended).
1685
+ template <bool IS_PACKED, typename Context, type, typename T,
1686
+ FMT_ENABLE_IF(IS_PACKED)>
1687
+ FMT_CONSTEXPR FMT_INLINE auto make_arg(T&& val) -> value<Context> {
1688
+ const auto& arg = arg_mapper<Context>().map(std::forward<T>(val));
1689
+
1690
+ constexpr bool formattable_char =
1691
+ !std::is_same<decltype(arg), const unformattable_char&>::value;
1692
+ static_assert(formattable_char, "Mixing character types is disallowed.");
1693
+
1694
+ constexpr bool formattable_const =
1695
+ !std::is_same<decltype(arg), const unformattable_const&>::value;
1696
+ static_assert(formattable_const, "Cannot format a const argument.");
1697
+
1698
+ // Formatting of arbitrary pointers is disallowed. If you want to output
1699
+ // a pointer cast it to "void *" or "const void *". In particular, this
1700
+ // forbids formatting of "[const] volatile char *" which is printed as bool
1701
+ // by iostreams.
1702
+ constexpr bool formattable_pointer =
1703
+ !std::is_same<decltype(arg), const unformattable_pointer&>::value;
1704
+ static_assert(formattable_pointer,
1705
+ "Formatting of non-void pointers is disallowed.");
1706
+
1707
+ constexpr bool formattable =
1708
+ !std::is_same<decltype(arg), const unformattable&>::value;
1709
+ static_assert(
1710
+ formattable,
1711
+ "Cannot format an argument. To make type T formattable provide a "
1712
+ "formatter<T> specialization: https://fmt.dev/latest/api.html#udt");
1713
+ return {arg};
1714
+ }
1715
+
1716
+ template <bool IS_PACKED, typename Context, type, typename T,
1717
+ FMT_ENABLE_IF(!IS_PACKED)>
1718
+ inline auto make_arg(const T& value) -> basic_format_arg<Context> {
1719
+ return make_arg<Context>(value);
1720
+ }
1721
+ FMT_END_DETAIL_NAMESPACE
1722
+
1723
+ // Formatting context.
1724
+ template <typename OutputIt, typename Char> class basic_format_context {
1725
+ public:
1726
+ /** The character type for the output. */
1727
+ using char_type = Char;
1728
+
1729
+ private:
1730
+ OutputIt out_;
1731
+ basic_format_args<basic_format_context> args_;
1732
+ detail::locale_ref loc_;
1733
+
1734
+ public:
1735
+ using iterator = OutputIt;
1736
+ using format_arg = basic_format_arg<basic_format_context>;
1737
+ using parse_context_type = basic_format_parse_context<Char>;
1738
+ template <typename T> using formatter_type = formatter<T, char_type>;
1739
+
1740
+ basic_format_context(basic_format_context&&) = default;
1741
+ basic_format_context(const basic_format_context&) = delete;
1742
+ void operator=(const basic_format_context&) = delete;
1743
+ /**
1744
+ Constructs a ``basic_format_context`` object. References to the arguments are
1745
+ stored in the object so make sure they have appropriate lifetimes.
1746
+ */
1747
+ constexpr basic_format_context(
1748
+ OutputIt out, basic_format_args<basic_format_context> ctx_args,
1749
+ detail::locale_ref loc = detail::locale_ref())
1750
+ : out_(out), args_(ctx_args), loc_(loc) {}
1751
+
1752
+ constexpr auto arg(int id) const -> format_arg { return args_.get(id); }
1753
+ FMT_CONSTEXPR auto arg(basic_string_view<char_type> name) -> format_arg {
1754
+ return args_.get(name);
1755
+ }
1756
+ FMT_CONSTEXPR auto arg_id(basic_string_view<char_type> name) -> int {
1757
+ return args_.get_id(name);
1758
+ }
1759
+ auto args() const -> const basic_format_args<basic_format_context>& {
1760
+ return args_;
1761
+ }
1762
+
1763
+ FMT_CONSTEXPR auto error_handler() -> detail::error_handler { return {}; }
1764
+ void on_error(const char* message) { error_handler().on_error(message); }
1765
+
1766
+ // Returns an iterator to the beginning of the output range.
1767
+ FMT_CONSTEXPR auto out() -> iterator { return out_; }
1768
+
1769
+ // Advances the begin iterator to ``it``.
1770
+ void advance_to(iterator it) {
1771
+ if (!detail::is_back_insert_iterator<iterator>()) out_ = it;
1772
+ }
1773
+
1774
+ FMT_CONSTEXPR auto locale() -> detail::locale_ref { return loc_; }
1775
+ };
1776
+
1777
+ template <typename Char>
1778
+ using buffer_context =
1779
+ basic_format_context<detail::buffer_appender<Char>, Char>;
1780
+ using format_context = buffer_context<char>;
1781
+
1782
+ // Workaround an alias issue: https://stackoverflow.com/q/62767544/471164.
1783
+ #define FMT_BUFFER_CONTEXT(Char) \
1784
+ basic_format_context<detail::buffer_appender<Char>, Char>
1785
+
1786
+ template <typename T, typename Char = char>
1787
+ using is_formattable = bool_constant<
1788
+ !std::is_base_of<detail::unformattable,
1789
+ decltype(detail::arg_mapper<buffer_context<Char>>().map(
1790
+ std::declval<T>()))>::value &&
1791
+ !detail::has_fallback_formatter<T, Char>::value>;
1792
+
1793
+ /**
1794
+ \rst
1795
+ An array of references to arguments. It can be implicitly converted into
1796
+ `~fmt::basic_format_args` for passing into type-erased formatting functions
1797
+ such as `~fmt::vformat`.
1798
+ \endrst
1799
+ */
1800
+ template <typename Context, typename... Args>
1801
+ class format_arg_store
1802
+ #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
1803
+ // Workaround a GCC template argument substitution bug.
1804
+ : public basic_format_args<Context>
1805
+ #endif
1806
+ {
1807
+ private:
1808
+ static const size_t num_args = sizeof...(Args);
1809
+ static const size_t num_named_args = detail::count_named_args<Args...>();
1810
+ static const bool is_packed = num_args <= detail::max_packed_args;
1811
+
1812
+ using value_type = conditional_t<is_packed, detail::value<Context>,
1813
+ basic_format_arg<Context>>;
1814
+
1815
+ detail::arg_data<value_type, typename Context::char_type, num_args,
1816
+ num_named_args>
1817
+ data_;
1818
+
1819
+ friend class basic_format_args<Context>;
1820
+
1821
+ static constexpr unsigned long long desc =
1822
+ (is_packed ? detail::encode_types<Context, Args...>()
1823
+ : detail::is_unpacked_bit | num_args) |
1824
+ (num_named_args != 0
1825
+ ? static_cast<unsigned long long>(detail::has_named_args_bit)
1826
+ : 0);
1827
+
1828
+ public:
1829
+ template <typename... T>
1830
+ FMT_CONSTEXPR FMT_INLINE format_arg_store(T&&... args)
1831
+ :
1832
+ #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
1833
+ basic_format_args<Context>(*this),
1834
+ #endif
1835
+ data_{detail::make_arg<
1836
+ is_packed, Context,
1837
+ detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
1838
+ std::forward<T>(args))...} {
1839
+ detail::init_named_args(data_.named_args(), 0, 0, args...);
1840
+ }
1841
+ };
1842
+
1843
+ /**
1844
+ \rst
1845
+ Constructs a `~fmt::format_arg_store` object that contains references to
1846
+ arguments and can be implicitly converted to `~fmt::format_args`. `Context`
1847
+ can be omitted in which case it defaults to `~fmt::context`.
1848
+ See `~fmt::arg` for lifetime considerations.
1849
+ \endrst
1850
+ */
1851
+ template <typename Context = format_context, typename... Args>
1852
+ constexpr auto make_format_args(Args&&... args)
1853
+ -> format_arg_store<Context, remove_cvref_t<Args>...> {
1854
+ return {std::forward<Args>(args)...};
1855
+ }
1856
+
1857
+ /**
1858
+ \rst
1859
+ Returns a named argument to be used in a formatting function.
1860
+ It should only be used in a call to a formatting function or
1861
+ `dynamic_format_arg_store::push_back`.
1862
+
1863
+ **Example**::
1864
+
1865
+ fmt::print("Elapsed time: {s:.2f} seconds", fmt::arg("s", 1.23));
1866
+ \endrst
1867
+ */
1868
+ template <typename Char, typename T>
1869
+ inline auto arg(const Char* name, const T& arg) -> detail::named_arg<Char, T> {
1870
+ static_assert(!detail::is_named_arg<T>(), "nested named arguments");
1871
+ return {name, arg};
1872
+ }
1873
+
1874
+ /**
1875
+ \rst
1876
+ A view of a collection of formatting arguments. To avoid lifetime issues it
1877
+ should only be used as a parameter type in type-erased functions such as
1878
+ ``vformat``::
1879
+
1880
+ void vlog(string_view format_str, format_args args); // OK
1881
+ format_args args = make_format_args(42); // Error: dangling reference
1882
+ \endrst
1883
+ */
1884
+ template <typename Context> class basic_format_args {
1885
+ public:
1886
+ using size_type = int;
1887
+ using format_arg = basic_format_arg<Context>;
1888
+
1889
+ private:
1890
+ // A descriptor that contains information about formatting arguments.
1891
+ // If the number of arguments is less or equal to max_packed_args then
1892
+ // argument types are passed in the descriptor. This reduces binary code size
1893
+ // per formatting function call.
1894
+ unsigned long long desc_;
1895
+ union {
1896
+ // If is_packed() returns true then argument values are stored in values_;
1897
+ // otherwise they are stored in args_. This is done to improve cache
1898
+ // locality and reduce compiled code size since storing larger objects
1899
+ // may require more code (at least on x86-64) even if the same amount of
1900
+ // data is actually copied to stack. It saves ~10% on the bloat test.
1901
+ const detail::value<Context>* values_;
1902
+ const format_arg* args_;
1903
+ };
1904
+
1905
+ constexpr auto is_packed() const -> bool {
1906
+ return (desc_ & detail::is_unpacked_bit) == 0;
1907
+ }
1908
+ auto has_named_args() const -> bool {
1909
+ return (desc_ & detail::has_named_args_bit) != 0;
1910
+ }
1911
+
1912
+ FMT_CONSTEXPR auto type(int index) const -> detail::type {
1913
+ int shift = index * detail::packed_arg_bits;
1914
+ unsigned int mask = (1 << detail::packed_arg_bits) - 1;
1915
+ return static_cast<detail::type>((desc_ >> shift) & mask);
1916
+ }
1917
+
1918
+ constexpr FMT_INLINE basic_format_args(unsigned long long desc,
1919
+ const detail::value<Context>* values)
1920
+ : desc_(desc), values_(values) {}
1921
+ constexpr basic_format_args(unsigned long long desc, const format_arg* args)
1922
+ : desc_(desc), args_(args) {}
1923
+
1924
+ public:
1925
+ constexpr basic_format_args() : desc_(0), args_(nullptr) {}
1926
+
1927
+ /**
1928
+ \rst
1929
+ Constructs a `basic_format_args` object from `~fmt::format_arg_store`.
1930
+ \endrst
1931
+ */
1932
+ template <typename... Args>
1933
+ constexpr FMT_INLINE basic_format_args(
1934
+ const format_arg_store<Context, Args...>& store)
1935
+ : basic_format_args(format_arg_store<Context, Args...>::desc,
1936
+ store.data_.args()) {}
1937
+
1938
+ /**
1939
+ \rst
1940
+ Constructs a `basic_format_args` object from
1941
+ `~fmt::dynamic_format_arg_store`.
1942
+ \endrst
1943
+ */
1944
+ constexpr FMT_INLINE basic_format_args(
1945
+ const dynamic_format_arg_store<Context>& store)
1946
+ : basic_format_args(store.get_types(), store.data()) {}
1947
+
1948
+ /**
1949
+ \rst
1950
+ Constructs a `basic_format_args` object from a dynamic set of arguments.
1951
+ \endrst
1952
+ */
1953
+ constexpr basic_format_args(const format_arg* args, int count)
1954
+ : basic_format_args(detail::is_unpacked_bit | detail::to_unsigned(count),
1955
+ args) {}
1956
+
1957
+ /** Returns the argument with the specified id. */
1958
+ FMT_CONSTEXPR auto get(int id) const -> format_arg {
1959
+ format_arg arg;
1960
+ if (!is_packed()) {
1961
+ if (id < max_size()) arg = args_[id];
1962
+ return arg;
1963
+ }
1964
+ if (id >= detail::max_packed_args) return arg;
1965
+ arg.type_ = type(id);
1966
+ if (arg.type_ == detail::type::none_type) return arg;
1967
+ arg.value_ = values_[id];
1968
+ return arg;
1969
+ }
1970
+
1971
+ template <typename Char>
1972
+ auto get(basic_string_view<Char> name) const -> format_arg {
1973
+ int id = get_id(name);
1974
+ return id >= 0 ? get(id) : format_arg();
1975
+ }
1976
+
1977
+ template <typename Char>
1978
+ auto get_id(basic_string_view<Char> name) const -> int {
1979
+ if (!has_named_args()) return -1;
1980
+ const auto& named_args =
1981
+ (is_packed() ? values_[-1] : args_[-1].value_).named_args;
1982
+ for (size_t i = 0; i < named_args.size; ++i) {
1983
+ if (named_args.data[i].name == name) return named_args.data[i].id;
1984
+ }
1985
+ return -1;
1986
+ }
1987
+
1988
+ auto max_size() const -> int {
1989
+ unsigned long long max_packed = detail::max_packed_args;
1990
+ return static_cast<int>(is_packed() ? max_packed
1991
+ : desc_ & ~detail::is_unpacked_bit);
1992
+ }
1993
+ };
1994
+
1995
+ /** An alias to ``basic_format_args<format_context>``. */
1996
+ // A separate type would result in shorter symbols but break ABI compatibility
1997
+ // between clang and gcc on ARM (#1919).
1998
+ using format_args = basic_format_args<format_context>;
1999
+
2000
+ // We cannot use enum classes as bit fields because of a gcc bug
2001
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414.
2002
+ namespace align {
2003
+ enum type { none, left, right, center, numeric };
2004
+ }
2005
+ using align_t = align::type;
2006
+ namespace sign {
2007
+ enum type { none, minus, plus, space };
2008
+ }
2009
+ using sign_t = sign::type;
2010
+
2011
+ FMT_BEGIN_DETAIL_NAMESPACE
2012
+
2013
+ // Workaround an array initialization issue in gcc 4.8.
2014
+ template <typename Char> struct fill_t {
2015
+ private:
2016
+ enum { max_size = 4 };
2017
+ Char data_[max_size] = {Char(' '), Char(0), Char(0), Char(0)};
2018
+ unsigned char size_ = 1;
2019
+
2020
+ public:
2021
+ FMT_CONSTEXPR void operator=(basic_string_view<Char> s) {
2022
+ auto size = s.size();
2023
+ if (size > max_size) return throw_format_error("invalid fill");
2024
+ for (size_t i = 0; i < size; ++i) data_[i] = s[i];
2025
+ size_ = static_cast<unsigned char>(size);
2026
+ }
2027
+
2028
+ constexpr auto size() const -> size_t { return size_; }
2029
+ constexpr auto data() const -> const Char* { return data_; }
2030
+
2031
+ FMT_CONSTEXPR auto operator[](size_t index) -> Char& { return data_[index]; }
2032
+ FMT_CONSTEXPR auto operator[](size_t index) const -> const Char& {
2033
+ return data_[index];
2034
+ }
2035
+ };
2036
+ FMT_END_DETAIL_NAMESPACE
2037
+
2038
+ enum class presentation_type : unsigned char {
2039
+ none,
2040
+ // Integer types should go first,
2041
+ dec, // 'd'
2042
+ oct, // 'o'
2043
+ hex_lower, // 'x'
2044
+ hex_upper, // 'X'
2045
+ bin_lower, // 'b'
2046
+ bin_upper, // 'B'
2047
+ hexfloat_lower, // 'a'
2048
+ hexfloat_upper, // 'A'
2049
+ exp_lower, // 'e'
2050
+ exp_upper, // 'E'
2051
+ fixed_lower, // 'f'
2052
+ fixed_upper, // 'F'
2053
+ general_lower, // 'g'
2054
+ general_upper, // 'G'
2055
+ chr, // 'c'
2056
+ string, // 's'
2057
+ pointer // 'p'
2058
+ };
2059
+
2060
+ // Format specifiers for built-in and string types.
2061
+ template <typename Char> struct basic_format_specs {
2062
+ int width;
2063
+ int precision;
2064
+ presentation_type type;
2065
+ align_t align : 4;
2066
+ sign_t sign : 3;
2067
+ bool alt : 1; // Alternate form ('#').
2068
+ bool localized : 1;
2069
+ detail::fill_t<Char> fill;
2070
+
2071
+ constexpr basic_format_specs()
2072
+ : width(0),
2073
+ precision(-1),
2074
+ type(presentation_type::none),
2075
+ align(align::none),
2076
+ sign(sign::none),
2077
+ alt(false),
2078
+ localized(false) {}
2079
+ };
2080
+
2081
+ using format_specs = basic_format_specs<char>;
2082
+
2083
+ FMT_BEGIN_DETAIL_NAMESPACE
2084
+
2085
+ enum class arg_id_kind { none, index, name };
2086
+
2087
+ // An argument reference.
2088
+ template <typename Char> struct arg_ref {
2089
+ FMT_CONSTEXPR arg_ref() : kind(arg_id_kind::none), val() {}
2090
+
2091
+ FMT_CONSTEXPR explicit arg_ref(int index)
2092
+ : kind(arg_id_kind::index), val(index) {}
2093
+ FMT_CONSTEXPR explicit arg_ref(basic_string_view<Char> name)
2094
+ : kind(arg_id_kind::name), val(name) {}
2095
+
2096
+ FMT_CONSTEXPR auto operator=(int idx) -> arg_ref& {
2097
+ kind = arg_id_kind::index;
2098
+ val.index = idx;
2099
+ return *this;
2100
+ }
2101
+
2102
+ arg_id_kind kind;
2103
+ union value {
2104
+ FMT_CONSTEXPR value(int id = 0) : index{id} {}
2105
+ FMT_CONSTEXPR value(basic_string_view<Char> n) : name(n) {}
2106
+
2107
+ int index;
2108
+ basic_string_view<Char> name;
2109
+ } val;
2110
+ };
2111
+
2112
+ // Format specifiers with width and precision resolved at formatting rather
2113
+ // than parsing time to allow re-using the same parsed specifiers with
2114
+ // different sets of arguments (precompilation of format strings).
2115
+ template <typename Char>
2116
+ struct dynamic_format_specs : basic_format_specs<Char> {
2117
+ arg_ref<Char> width_ref;
2118
+ arg_ref<Char> precision_ref;
2119
+ };
2120
+
2121
+ struct auto_id {};
2122
+
2123
+ // A format specifier handler that sets fields in basic_format_specs.
2124
+ template <typename Char> class specs_setter {
2125
+ protected:
2126
+ basic_format_specs<Char>& specs_;
2127
+
2128
+ public:
2129
+ explicit FMT_CONSTEXPR specs_setter(basic_format_specs<Char>& specs)
2130
+ : specs_(specs) {}
2131
+
2132
+ FMT_CONSTEXPR specs_setter(const specs_setter& other)
2133
+ : specs_(other.specs_) {}
2134
+
2135
+ FMT_CONSTEXPR void on_align(align_t align) { specs_.align = align; }
2136
+ FMT_CONSTEXPR void on_fill(basic_string_view<Char> fill) {
2137
+ specs_.fill = fill;
2138
+ }
2139
+ FMT_CONSTEXPR void on_sign(sign_t s) { specs_.sign = s; }
2140
+ FMT_CONSTEXPR void on_hash() { specs_.alt = true; }
2141
+ FMT_CONSTEXPR void on_localized() { specs_.localized = true; }
2142
+
2143
+ FMT_CONSTEXPR void on_zero() {
2144
+ if (specs_.align == align::none) specs_.align = align::numeric;
2145
+ specs_.fill[0] = Char('0');
2146
+ }
2147
+
2148
+ FMT_CONSTEXPR void on_width(int width) { specs_.width = width; }
2149
+ FMT_CONSTEXPR void on_precision(int precision) {
2150
+ specs_.precision = precision;
2151
+ }
2152
+ FMT_CONSTEXPR void end_precision() {}
2153
+
2154
+ FMT_CONSTEXPR void on_type(presentation_type type) { specs_.type = type; }
2155
+ };
2156
+
2157
+ // Format spec handler that saves references to arguments representing dynamic
2158
+ // width and precision to be resolved at formatting time.
2159
+ template <typename ParseContext>
2160
+ class dynamic_specs_handler
2161
+ : public specs_setter<typename ParseContext::char_type> {
2162
+ public:
2163
+ using char_type = typename ParseContext::char_type;
2164
+
2165
+ FMT_CONSTEXPR dynamic_specs_handler(dynamic_format_specs<char_type>& specs,
2166
+ ParseContext& ctx)
2167
+ : specs_setter<char_type>(specs), specs_(specs), context_(ctx) {}
2168
+
2169
+ FMT_CONSTEXPR dynamic_specs_handler(const dynamic_specs_handler& other)
2170
+ : specs_setter<char_type>(other),
2171
+ specs_(other.specs_),
2172
+ context_(other.context_) {}
2173
+
2174
+ template <typename Id> FMT_CONSTEXPR void on_dynamic_width(Id arg_id) {
2175
+ specs_.width_ref = make_arg_ref(arg_id);
2176
+ }
2177
+
2178
+ template <typename Id> FMT_CONSTEXPR void on_dynamic_precision(Id arg_id) {
2179
+ specs_.precision_ref = make_arg_ref(arg_id);
2180
+ }
2181
+
2182
+ FMT_CONSTEXPR void on_error(const char* message) {
2183
+ context_.on_error(message);
2184
+ }
2185
+
2186
+ private:
2187
+ dynamic_format_specs<char_type>& specs_;
2188
+ ParseContext& context_;
2189
+
2190
+ using arg_ref_type = arg_ref<char_type>;
2191
+
2192
+ FMT_CONSTEXPR auto make_arg_ref(int arg_id) -> arg_ref_type {
2193
+ context_.check_arg_id(arg_id);
2194
+ return arg_ref_type(arg_id);
2195
+ }
2196
+
2197
+ FMT_CONSTEXPR auto make_arg_ref(auto_id) -> arg_ref_type {
2198
+ return arg_ref_type(context_.next_arg_id());
2199
+ }
2200
+
2201
+ FMT_CONSTEXPR auto make_arg_ref(basic_string_view<char_type> arg_id)
2202
+ -> arg_ref_type {
2203
+ context_.check_arg_id(arg_id);
2204
+ basic_string_view<char_type> format_str(
2205
+ context_.begin(), to_unsigned(context_.end() - context_.begin()));
2206
+ return arg_ref_type(arg_id);
2207
+ }
2208
+ };
2209
+
2210
+ template <typename Char> constexpr bool is_ascii_letter(Char c) {
2211
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
2212
+ }
2213
+
2214
+ // Converts a character to ASCII. Returns a number > 127 on conversion failure.
2215
+ template <typename Char, FMT_ENABLE_IF(std::is_integral<Char>::value)>
2216
+ constexpr auto to_ascii(Char value) -> Char {
2217
+ return value;
2218
+ }
2219
+ template <typename Char, FMT_ENABLE_IF(std::is_enum<Char>::value)>
2220
+ constexpr auto to_ascii(Char value) ->
2221
+ typename std::underlying_type<Char>::type {
2222
+ return value;
2223
+ }
2224
+
2225
+ template <typename Char>
2226
+ FMT_CONSTEXPR auto code_point_length(const Char* begin) -> int {
2227
+ if (const_check(sizeof(Char) != 1)) return 1;
2228
+ auto lengths =
2229
+ "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3\3\4";
2230
+ int len = lengths[static_cast<unsigned char>(*begin) >> 3];
2231
+
2232
+ // Compute the pointer to the next character early so that the next
2233
+ // iteration can start working on the next character. Neither Clang
2234
+ // nor GCC figure out this reordering on their own.
2235
+ return len + !len;
2236
+ }
2237
+
2238
+ // Return the result via the out param to workaround gcc bug 77539.
2239
+ template <bool IS_CONSTEXPR, typename T, typename Ptr = const T*>
2240
+ FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr& out) -> bool {
2241
+ for (out = first; out != last; ++out) {
2242
+ if (*out == value) return true;
2243
+ }
2244
+ return false;
2245
+ }
2246
+
2247
+ template <>
2248
+ inline auto find<false, char>(const char* first, const char* last, char value,
2249
+ const char*& out) -> bool {
2250
+ out = static_cast<const char*>(
2251
+ std::memchr(first, value, to_unsigned(last - first)));
2252
+ return out != nullptr;
2253
+ }
2254
+
2255
+ // Parses the range [begin, end) as an unsigned integer. This function assumes
2256
+ // that the range is non-empty and the first character is a digit.
2257
+ template <typename Char>
2258
+ FMT_CONSTEXPR auto parse_nonnegative_int(const Char*& begin, const Char* end,
2259
+ int error_value) noexcept -> int {
2260
+ FMT_ASSERT(begin != end && '0' <= *begin && *begin <= '9', "");
2261
+ unsigned value = 0, prev = 0;
2262
+ auto p = begin;
2263
+ do {
2264
+ prev = value;
2265
+ value = value * 10 + unsigned(*p - '0');
2266
+ ++p;
2267
+ } while (p != end && '0' <= *p && *p <= '9');
2268
+ auto num_digits = p - begin;
2269
+ begin = p;
2270
+ if (num_digits <= std::numeric_limits<int>::digits10)
2271
+ return static_cast<int>(value);
2272
+ // Check for overflow.
2273
+ const unsigned max = to_unsigned((std::numeric_limits<int>::max)());
2274
+ return num_digits == std::numeric_limits<int>::digits10 + 1 &&
2275
+ prev * 10ull + unsigned(p[-1] - '0') <= max
2276
+ ? static_cast<int>(value)
2277
+ : error_value;
2278
+ }
2279
+
2280
+ // Parses fill and alignment.
2281
+ template <typename Char, typename Handler>
2282
+ FMT_CONSTEXPR auto parse_align(const Char* begin, const Char* end,
2283
+ Handler&& handler) -> const Char* {
2284
+ FMT_ASSERT(begin != end, "");
2285
+ auto align = align::none;
2286
+ auto p = begin + code_point_length(begin);
2287
+ if (p >= end) p = begin;
2288
+ for (;;) {
2289
+ switch (to_ascii(*p)) {
2290
+ case '<':
2291
+ align = align::left;
2292
+ break;
2293
+ case '>':
2294
+ align = align::right;
2295
+ break;
2296
+ case '^':
2297
+ align = align::center;
2298
+ break;
2299
+ default:
2300
+ break;
2301
+ }
2302
+ if (align != align::none) {
2303
+ if (p != begin) {
2304
+ auto c = *begin;
2305
+ if (c == '{')
2306
+ return handler.on_error("invalid fill character '{'"), begin;
2307
+ handler.on_fill(basic_string_view<Char>(begin, to_unsigned(p - begin)));
2308
+ begin = p + 1;
2309
+ } else
2310
+ ++begin;
2311
+ handler.on_align(align);
2312
+ break;
2313
+ } else if (p == begin) {
2314
+ break;
2315
+ }
2316
+ p = begin;
2317
+ }
2318
+ return begin;
2319
+ }
2320
+
2321
+ template <typename Char> FMT_CONSTEXPR bool is_name_start(Char c) {
2322
+ return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || '_' == c;
2323
+ }
2324
+
2325
+ template <typename Char, typename IDHandler>
2326
+ FMT_CONSTEXPR auto do_parse_arg_id(const Char* begin, const Char* end,
2327
+ IDHandler&& handler) -> const Char* {
2328
+ FMT_ASSERT(begin != end, "");
2329
+ Char c = *begin;
2330
+ if (c >= '0' && c <= '9') {
2331
+ int index = 0;
2332
+ if (c != '0')
2333
+ index =
2334
+ parse_nonnegative_int(begin, end, (std::numeric_limits<int>::max)());
2335
+ else
2336
+ ++begin;
2337
+ if (begin == end || (*begin != '}' && *begin != ':'))
2338
+ handler.on_error("invalid format string");
2339
+ else
2340
+ handler(index);
2341
+ return begin;
2342
+ }
2343
+ if (!is_name_start(c)) {
2344
+ handler.on_error("invalid format string");
2345
+ return begin;
2346
+ }
2347
+ auto it = begin;
2348
+ do {
2349
+ ++it;
2350
+ } while (it != end && (is_name_start(c = *it) || ('0' <= c && c <= '9')));
2351
+ handler(basic_string_view<Char>(begin, to_unsigned(it - begin)));
2352
+ return it;
2353
+ }
2354
+
2355
+ template <typename Char, typename IDHandler>
2356
+ FMT_CONSTEXPR FMT_INLINE auto parse_arg_id(const Char* begin, const Char* end,
2357
+ IDHandler&& handler) -> const Char* {
2358
+ Char c = *begin;
2359
+ if (c != '}' && c != ':') return do_parse_arg_id(begin, end, handler);
2360
+ handler();
2361
+ return begin;
2362
+ }
2363
+
2364
+ template <typename Char, typename Handler>
2365
+ FMT_CONSTEXPR auto parse_width(const Char* begin, const Char* end,
2366
+ Handler&& handler) -> const Char* {
2367
+ using detail::auto_id;
2368
+ struct width_adapter {
2369
+ Handler& handler;
2370
+
2371
+ FMT_CONSTEXPR void operator()() { handler.on_dynamic_width(auto_id()); }
2372
+ FMT_CONSTEXPR void operator()(int id) { handler.on_dynamic_width(id); }
2373
+ FMT_CONSTEXPR void operator()(basic_string_view<Char> id) {
2374
+ handler.on_dynamic_width(id);
2375
+ }
2376
+ FMT_CONSTEXPR void on_error(const char* message) {
2377
+ if (message) handler.on_error(message);
2378
+ }
2379
+ };
2380
+
2381
+ FMT_ASSERT(begin != end, "");
2382
+ if ('0' <= *begin && *begin <= '9') {
2383
+ int width = parse_nonnegative_int(begin, end, -1);
2384
+ if (width != -1)
2385
+ handler.on_width(width);
2386
+ else
2387
+ handler.on_error("number is too big");
2388
+ } else if (*begin == '{') {
2389
+ ++begin;
2390
+ if (begin != end) begin = parse_arg_id(begin, end, width_adapter{handler});
2391
+ if (begin == end || *begin != '}')
2392
+ return handler.on_error("invalid format string"), begin;
2393
+ ++begin;
2394
+ }
2395
+ return begin;
2396
+ }
2397
+
2398
+ template <typename Char, typename Handler>
2399
+ FMT_CONSTEXPR auto parse_precision(const Char* begin, const Char* end,
2400
+ Handler&& handler) -> const Char* {
2401
+ using detail::auto_id;
2402
+ struct precision_adapter {
2403
+ Handler& handler;
2404
+
2405
+ FMT_CONSTEXPR void operator()() { handler.on_dynamic_precision(auto_id()); }
2406
+ FMT_CONSTEXPR void operator()(int id) { handler.on_dynamic_precision(id); }
2407
+ FMT_CONSTEXPR void operator()(basic_string_view<Char> id) {
2408
+ handler.on_dynamic_precision(id);
2409
+ }
2410
+ FMT_CONSTEXPR void on_error(const char* message) {
2411
+ if (message) handler.on_error(message);
2412
+ }
2413
+ };
2414
+
2415
+ ++begin;
2416
+ auto c = begin != end ? *begin : Char();
2417
+ if ('0' <= c && c <= '9') {
2418
+ auto precision = parse_nonnegative_int(begin, end, -1);
2419
+ if (precision != -1)
2420
+ handler.on_precision(precision);
2421
+ else
2422
+ handler.on_error("number is too big");
2423
+ } else if (c == '{') {
2424
+ ++begin;
2425
+ if (begin != end)
2426
+ begin = parse_arg_id(begin, end, precision_adapter{handler});
2427
+ if (begin == end || *begin++ != '}')
2428
+ return handler.on_error("invalid format string"), begin;
2429
+ } else {
2430
+ return handler.on_error("missing precision specifier"), begin;
2431
+ }
2432
+ handler.end_precision();
2433
+ return begin;
2434
+ }
2435
+
2436
+ template <typename Char>
2437
+ FMT_CONSTEXPR auto parse_presentation_type(Char type) -> presentation_type {
2438
+ switch (to_ascii(type)) {
2439
+ case 'd':
2440
+ return presentation_type::dec;
2441
+ case 'o':
2442
+ return presentation_type::oct;
2443
+ case 'x':
2444
+ return presentation_type::hex_lower;
2445
+ case 'X':
2446
+ return presentation_type::hex_upper;
2447
+ case 'b':
2448
+ return presentation_type::bin_lower;
2449
+ case 'B':
2450
+ return presentation_type::bin_upper;
2451
+ case 'a':
2452
+ return presentation_type::hexfloat_lower;
2453
+ case 'A':
2454
+ return presentation_type::hexfloat_upper;
2455
+ case 'e':
2456
+ return presentation_type::exp_lower;
2457
+ case 'E':
2458
+ return presentation_type::exp_upper;
2459
+ case 'f':
2460
+ return presentation_type::fixed_lower;
2461
+ case 'F':
2462
+ return presentation_type::fixed_upper;
2463
+ case 'g':
2464
+ return presentation_type::general_lower;
2465
+ case 'G':
2466
+ return presentation_type::general_upper;
2467
+ case 'c':
2468
+ return presentation_type::chr;
2469
+ case 's':
2470
+ return presentation_type::string;
2471
+ case 'p':
2472
+ return presentation_type::pointer;
2473
+ default:
2474
+ return presentation_type::none;
2475
+ }
2476
+ }
2477
+
2478
+ // Parses standard format specifiers and sends notifications about parsed
2479
+ // components to handler.
2480
+ template <typename Char, typename SpecHandler>
2481
+ FMT_CONSTEXPR FMT_INLINE auto parse_format_specs(const Char* begin,
2482
+ const Char* end,
2483
+ SpecHandler&& handler)
2484
+ -> const Char* {
2485
+ if (begin + 1 < end && begin[1] == '}' && is_ascii_letter(*begin) &&
2486
+ *begin != 'L') {
2487
+ presentation_type type = parse_presentation_type(*begin++);
2488
+ if (type == presentation_type::none)
2489
+ handler.on_error("invalid type specifier");
2490
+ handler.on_type(type);
2491
+ return begin;
2492
+ }
2493
+
2494
+ if (begin == end) return begin;
2495
+
2496
+ begin = parse_align(begin, end, handler);
2497
+ if (begin == end) return begin;
2498
+
2499
+ // Parse sign.
2500
+ switch (to_ascii(*begin)) {
2501
+ case '+':
2502
+ handler.on_sign(sign::plus);
2503
+ ++begin;
2504
+ break;
2505
+ case '-':
2506
+ handler.on_sign(sign::minus);
2507
+ ++begin;
2508
+ break;
2509
+ case ' ':
2510
+ handler.on_sign(sign::space);
2511
+ ++begin;
2512
+ break;
2513
+ default:
2514
+ break;
2515
+ }
2516
+ if (begin == end) return begin;
2517
+
2518
+ if (*begin == '#') {
2519
+ handler.on_hash();
2520
+ if (++begin == end) return begin;
2521
+ }
2522
+
2523
+ // Parse zero flag.
2524
+ if (*begin == '0') {
2525
+ handler.on_zero();
2526
+ if (++begin == end) return begin;
2527
+ }
2528
+
2529
+ begin = parse_width(begin, end, handler);
2530
+ if (begin == end) return begin;
2531
+
2532
+ // Parse precision.
2533
+ if (*begin == '.') {
2534
+ begin = parse_precision(begin, end, handler);
2535
+ if (begin == end) return begin;
2536
+ }
2537
+
2538
+ if (*begin == 'L') {
2539
+ handler.on_localized();
2540
+ ++begin;
2541
+ }
2542
+
2543
+ // Parse type.
2544
+ if (begin != end && *begin != '}') {
2545
+ presentation_type type = parse_presentation_type(*begin++);
2546
+ if (type == presentation_type::none)
2547
+ handler.on_error("invalid type specifier");
2548
+ handler.on_type(type);
2549
+ }
2550
+ return begin;
2551
+ }
2552
+
2553
+ template <typename Char, typename Handler>
2554
+ FMT_CONSTEXPR auto parse_replacement_field(const Char* begin, const Char* end,
2555
+ Handler&& handler) -> const Char* {
2556
+ struct id_adapter {
2557
+ Handler& handler;
2558
+ int arg_id;
2559
+
2560
+ FMT_CONSTEXPR void operator()() { arg_id = handler.on_arg_id(); }
2561
+ FMT_CONSTEXPR void operator()(int id) { arg_id = handler.on_arg_id(id); }
2562
+ FMT_CONSTEXPR void operator()(basic_string_view<Char> id) {
2563
+ arg_id = handler.on_arg_id(id);
2564
+ }
2565
+ FMT_CONSTEXPR void on_error(const char* message) {
2566
+ if (message) handler.on_error(message);
2567
+ }
2568
+ };
2569
+
2570
+ ++begin;
2571
+ if (begin == end) return handler.on_error("invalid format string"), end;
2572
+ if (*begin == '}') {
2573
+ handler.on_replacement_field(handler.on_arg_id(), begin);
2574
+ } else if (*begin == '{') {
2575
+ handler.on_text(begin, begin + 1);
2576
+ } else {
2577
+ auto adapter = id_adapter{handler, 0};
2578
+ begin = parse_arg_id(begin, end, adapter);
2579
+ Char c = begin != end ? *begin : Char();
2580
+ if (c == '}') {
2581
+ handler.on_replacement_field(adapter.arg_id, begin);
2582
+ } else if (c == ':') {
2583
+ begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
2584
+ if (begin == end || *begin != '}')
2585
+ return handler.on_error("unknown format specifier"), end;
2586
+ } else {
2587
+ return handler.on_error("missing '}' in format string"), end;
2588
+ }
2589
+ }
2590
+ return begin + 1;
2591
+ }
2592
+
2593
+ template <bool IS_CONSTEXPR, typename Char, typename Handler>
2594
+ FMT_CONSTEXPR FMT_INLINE void parse_format_string(
2595
+ basic_string_view<Char> format_str, Handler&& handler) {
2596
+ // Workaround a name-lookup bug in MSVC's modules implementation.
2597
+ using detail::find;
2598
+
2599
+ auto begin = format_str.data();
2600
+ auto end = begin + format_str.size();
2601
+ if (end - begin < 32) {
2602
+ // Use a simple loop instead of memchr for small strings.
2603
+ const Char* p = begin;
2604
+ while (p != end) {
2605
+ auto c = *p++;
2606
+ if (c == '{') {
2607
+ handler.on_text(begin, p - 1);
2608
+ begin = p = parse_replacement_field(p - 1, end, handler);
2609
+ } else if (c == '}') {
2610
+ if (p == end || *p != '}')
2611
+ return handler.on_error("unmatched '}' in format string");
2612
+ handler.on_text(begin, p);
2613
+ begin = ++p;
2614
+ }
2615
+ }
2616
+ handler.on_text(begin, end);
2617
+ return;
2618
+ }
2619
+ struct writer {
2620
+ FMT_CONSTEXPR void operator()(const Char* pbegin, const Char* pend) {
2621
+ if (pbegin == pend) return;
2622
+ for (;;) {
2623
+ const Char* p = nullptr;
2624
+ if (!find<IS_CONSTEXPR>(pbegin, pend, Char('}'), p))
2625
+ return handler_.on_text(pbegin, pend);
2626
+ ++p;
2627
+ if (p == pend || *p != '}')
2628
+ return handler_.on_error("unmatched '}' in format string");
2629
+ handler_.on_text(pbegin, p);
2630
+ pbegin = p + 1;
2631
+ }
2632
+ }
2633
+ Handler& handler_;
2634
+ } write{handler};
2635
+ while (begin != end) {
2636
+ // Doing two passes with memchr (one for '{' and another for '}') is up to
2637
+ // 2.5x faster than the naive one-pass implementation on big format strings.
2638
+ const Char* p = begin;
2639
+ if (*begin != '{' && !find<IS_CONSTEXPR>(begin + 1, end, Char('{'), p))
2640
+ return write(begin, end);
2641
+ write(begin, p);
2642
+ begin = parse_replacement_field(p, end, handler);
2643
+ }
2644
+ }
2645
+
2646
+ template <typename T, typename ParseContext>
2647
+ FMT_CONSTEXPR auto parse_format_specs(ParseContext& ctx)
2648
+ -> decltype(ctx.begin()) {
2649
+ using char_type = typename ParseContext::char_type;
2650
+ using context = buffer_context<char_type>;
2651
+ using mapped_type = conditional_t<
2652
+ mapped_type_constant<T, context>::value != type::custom_type,
2653
+ decltype(arg_mapper<context>().map(std::declval<const T&>())), T>;
2654
+ auto f = conditional_t<has_formatter<mapped_type, context>::value,
2655
+ formatter<mapped_type, char_type>,
2656
+ fallback_formatter<T, char_type>>();
2657
+ return f.parse(ctx);
2658
+ }
2659
+
2660
+ // A parse context with extra argument id checks. It is only used at compile
2661
+ // time because adding checks at runtime would introduce substantial overhead
2662
+ // and would be redundant since argument ids are checked when arguments are
2663
+ // retrieved anyway.
2664
+ template <typename Char, typename ErrorHandler = error_handler>
2665
+ class compile_parse_context
2666
+ : public basic_format_parse_context<Char, ErrorHandler> {
2667
+ private:
2668
+ int num_args_;
2669
+ using base = basic_format_parse_context<Char, ErrorHandler>;
2670
+
2671
+ public:
2672
+ explicit FMT_CONSTEXPR compile_parse_context(
2673
+ basic_string_view<Char> format_str,
2674
+ int num_args = (std::numeric_limits<int>::max)(), ErrorHandler eh = {})
2675
+ : base(format_str, eh), num_args_(num_args) {}
2676
+
2677
+ FMT_CONSTEXPR auto next_arg_id() -> int {
2678
+ int id = base::next_arg_id();
2679
+ if (id >= num_args_) this->on_error("argument not found");
2680
+ return id;
2681
+ }
2682
+
2683
+ FMT_CONSTEXPR void check_arg_id(int id) {
2684
+ base::check_arg_id(id);
2685
+ if (id >= num_args_) this->on_error("argument not found");
2686
+ }
2687
+ using base::check_arg_id;
2688
+ };
2689
+
2690
+ template <typename ErrorHandler>
2691
+ FMT_CONSTEXPR void check_int_type_spec(presentation_type type,
2692
+ ErrorHandler&& eh) {
2693
+ if (type > presentation_type::bin_upper && type != presentation_type::chr)
2694
+ eh.on_error("invalid type specifier");
2695
+ }
2696
+
2697
+ // Checks char specs and returns true if the type spec is char (and not int).
2698
+ template <typename Char, typename ErrorHandler = error_handler>
2699
+ FMT_CONSTEXPR auto check_char_specs(const basic_format_specs<Char>& specs,
2700
+ ErrorHandler&& eh = {}) -> bool {
2701
+ if (specs.type != presentation_type::none &&
2702
+ specs.type != presentation_type::chr) {
2703
+ check_int_type_spec(specs.type, eh);
2704
+ return false;
2705
+ }
2706
+ if (specs.align == align::numeric || specs.sign != sign::none || specs.alt)
2707
+ eh.on_error("invalid format specifier for char");
2708
+ return true;
2709
+ }
2710
+
2711
+ // A floating-point presentation format.
2712
+ enum class float_format : unsigned char {
2713
+ general, // General: exponent notation or fixed point based on magnitude.
2714
+ exp, // Exponent notation with the default precision of 6, e.g. 1.2e-3.
2715
+ fixed, // Fixed point with the default precision of 6, e.g. 0.0012.
2716
+ hex
2717
+ };
2718
+
2719
+ struct float_specs {
2720
+ int precision;
2721
+ float_format format : 8;
2722
+ sign_t sign : 8;
2723
+ bool upper : 1;
2724
+ bool locale : 1;
2725
+ bool binary32 : 1;
2726
+ bool fallback : 1;
2727
+ bool showpoint : 1;
2728
+ };
2729
+
2730
+ template <typename ErrorHandler = error_handler, typename Char>
2731
+ FMT_CONSTEXPR auto parse_float_type_spec(const basic_format_specs<Char>& specs,
2732
+ ErrorHandler&& eh = {})
2733
+ -> float_specs {
2734
+ auto result = float_specs();
2735
+ result.showpoint = specs.alt;
2736
+ result.locale = specs.localized;
2737
+ switch (specs.type) {
2738
+ case presentation_type::none:
2739
+ result.format = float_format::general;
2740
+ break;
2741
+ case presentation_type::general_upper:
2742
+ result.upper = true;
2743
+ FMT_FALLTHROUGH;
2744
+ case presentation_type::general_lower:
2745
+ result.format = float_format::general;
2746
+ break;
2747
+ case presentation_type::exp_upper:
2748
+ result.upper = true;
2749
+ FMT_FALLTHROUGH;
2750
+ case presentation_type::exp_lower:
2751
+ result.format = float_format::exp;
2752
+ result.showpoint |= specs.precision != 0;
2753
+ break;
2754
+ case presentation_type::fixed_upper:
2755
+ result.upper = true;
2756
+ FMT_FALLTHROUGH;
2757
+ case presentation_type::fixed_lower:
2758
+ result.format = float_format::fixed;
2759
+ result.showpoint |= specs.precision != 0;
2760
+ break;
2761
+ case presentation_type::hexfloat_upper:
2762
+ result.upper = true;
2763
+ FMT_FALLTHROUGH;
2764
+ case presentation_type::hexfloat_lower:
2765
+ result.format = float_format::hex;
2766
+ break;
2767
+ default:
2768
+ eh.on_error("invalid type specifier");
2769
+ break;
2770
+ }
2771
+ return result;
2772
+ }
2773
+
2774
+ template <typename ErrorHandler = error_handler>
2775
+ FMT_CONSTEXPR auto check_cstring_type_spec(presentation_type type,
2776
+ ErrorHandler&& eh = {}) -> bool {
2777
+ if (type == presentation_type::none || type == presentation_type::string)
2778
+ return true;
2779
+ if (type != presentation_type::pointer) eh.on_error("invalid type specifier");
2780
+ return false;
2781
+ }
2782
+
2783
+ template <typename ErrorHandler = error_handler>
2784
+ FMT_CONSTEXPR void check_string_type_spec(presentation_type type,
2785
+ ErrorHandler&& eh = {}) {
2786
+ if (type != presentation_type::none && type != presentation_type::string)
2787
+ eh.on_error("invalid type specifier");
2788
+ }
2789
+
2790
+ template <typename ErrorHandler>
2791
+ FMT_CONSTEXPR void check_pointer_type_spec(presentation_type type,
2792
+ ErrorHandler&& eh) {
2793
+ if (type != presentation_type::none && type != presentation_type::pointer)
2794
+ eh.on_error("invalid type specifier");
2795
+ }
2796
+
2797
+ // A parse_format_specs handler that checks if specifiers are consistent with
2798
+ // the argument type.
2799
+ template <typename Handler> class specs_checker : public Handler {
2800
+ private:
2801
+ detail::type arg_type_;
2802
+
2803
+ FMT_CONSTEXPR void require_numeric_argument() {
2804
+ if (!is_arithmetic_type(arg_type_))
2805
+ this->on_error("format specifier requires numeric argument");
2806
+ }
2807
+
2808
+ public:
2809
+ FMT_CONSTEXPR specs_checker(const Handler& handler, detail::type arg_type)
2810
+ : Handler(handler), arg_type_(arg_type) {}
2811
+
2812
+ FMT_CONSTEXPR void on_align(align_t align) {
2813
+ if (align == align::numeric) require_numeric_argument();
2814
+ Handler::on_align(align);
2815
+ }
2816
+
2817
+ FMT_CONSTEXPR void on_sign(sign_t s) {
2818
+ require_numeric_argument();
2819
+ if (is_integral_type(arg_type_) && arg_type_ != type::int_type &&
2820
+ arg_type_ != type::long_long_type && arg_type_ != type::char_type) {
2821
+ this->on_error("format specifier requires signed argument");
2822
+ }
2823
+ Handler::on_sign(s);
2824
+ }
2825
+
2826
+ FMT_CONSTEXPR void on_hash() {
2827
+ require_numeric_argument();
2828
+ Handler::on_hash();
2829
+ }
2830
+
2831
+ FMT_CONSTEXPR void on_localized() {
2832
+ require_numeric_argument();
2833
+ Handler::on_localized();
2834
+ }
2835
+
2836
+ FMT_CONSTEXPR void on_zero() {
2837
+ require_numeric_argument();
2838
+ Handler::on_zero();
2839
+ }
2840
+
2841
+ FMT_CONSTEXPR void end_precision() {
2842
+ if (is_integral_type(arg_type_) || arg_type_ == type::pointer_type)
2843
+ this->on_error("precision not allowed for this argument type");
2844
+ }
2845
+ };
2846
+
2847
+ constexpr int invalid_arg_index = -1;
2848
+
2849
+ #if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
2850
+ template <int N, typename T, typename... Args, typename Char>
2851
+ constexpr auto get_arg_index_by_name(basic_string_view<Char> name) -> int {
2852
+ if constexpr (detail::is_statically_named_arg<T>()) {
2853
+ if (name == T::name) return N;
2854
+ }
2855
+ if constexpr (sizeof...(Args) > 0)
2856
+ return get_arg_index_by_name<N + 1, Args...>(name);
2857
+ (void)name; // Workaround an MSVC bug about "unused" parameter.
2858
+ return invalid_arg_index;
2859
+ }
2860
+ #endif
2861
+
2862
+ template <typename... Args, typename Char>
2863
+ FMT_CONSTEXPR auto get_arg_index_by_name(basic_string_view<Char> name) -> int {
2864
+ #if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
2865
+ if constexpr (sizeof...(Args) > 0)
2866
+ return get_arg_index_by_name<0, Args...>(name);
2867
+ #endif
2868
+ (void)name;
2869
+ return invalid_arg_index;
2870
+ }
2871
+
2872
+ template <typename Char, typename ErrorHandler, typename... Args>
2873
+ class format_string_checker {
2874
+ private:
2875
+ using parse_context_type = compile_parse_context<Char, ErrorHandler>;
2876
+ enum { num_args = sizeof...(Args) };
2877
+
2878
+ // Format specifier parsing function.
2879
+ using parse_func = const Char* (*)(parse_context_type&);
2880
+
2881
+ parse_context_type context_;
2882
+ parse_func parse_funcs_[num_args > 0 ? num_args : 1];
2883
+
2884
+ public:
2885
+ explicit FMT_CONSTEXPR format_string_checker(
2886
+ basic_string_view<Char> format_str, ErrorHandler eh)
2887
+ : context_(format_str, num_args, eh),
2888
+ parse_funcs_{&parse_format_specs<Args, parse_context_type>...} {}
2889
+
2890
+ FMT_CONSTEXPR void on_text(const Char*, const Char*) {}
2891
+
2892
+ FMT_CONSTEXPR auto on_arg_id() -> int { return context_.next_arg_id(); }
2893
+ FMT_CONSTEXPR auto on_arg_id(int id) -> int {
2894
+ return context_.check_arg_id(id), id;
2895
+ }
2896
+ FMT_CONSTEXPR auto on_arg_id(basic_string_view<Char> id) -> int {
2897
+ #if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
2898
+ auto index = get_arg_index_by_name<Args...>(id);
2899
+ if (index == invalid_arg_index) on_error("named argument is not found");
2900
+ return context_.check_arg_id(index), index;
2901
+ #else
2902
+ (void)id;
2903
+ on_error("compile-time checks for named arguments require C++20 support");
2904
+ return 0;
2905
+ #endif
2906
+ }
2907
+
2908
+ FMT_CONSTEXPR void on_replacement_field(int, const Char*) {}
2909
+
2910
+ FMT_CONSTEXPR auto on_format_specs(int id, const Char* begin, const Char*)
2911
+ -> const Char* {
2912
+ context_.advance_to(context_.begin() + (begin - &*context_.begin()));
2913
+ // id >= 0 check is a workaround for gcc 10 bug (#2065).
2914
+ return id >= 0 && id < num_args ? parse_funcs_[id](context_) : begin;
2915
+ }
2916
+
2917
+ FMT_CONSTEXPR void on_error(const char* message) {
2918
+ context_.on_error(message);
2919
+ }
2920
+ };
2921
+
2922
+ template <typename... Args, typename S,
2923
+ enable_if_t<(is_compile_string<S>::value), int>>
2924
+ void check_format_string(S format_str) {
2925
+ FMT_CONSTEXPR auto s = to_string_view(format_str);
2926
+ using checker = format_string_checker<typename S::char_type, error_handler,
2927
+ remove_cvref_t<Args>...>;
2928
+ FMT_CONSTEXPR bool invalid_format =
2929
+ (parse_format_string<true>(s, checker(s, {})), true);
2930
+ ignore_unused(invalid_format);
2931
+ }
2932
+
2933
+ template <typename Char>
2934
+ void vformat_to(
2935
+ buffer<Char>& buf, basic_string_view<Char> fmt,
2936
+ basic_format_args<FMT_BUFFER_CONTEXT(type_identity_t<Char>)> args,
2937
+ locale_ref loc = {});
2938
+
2939
+ FMT_API void vprint_mojibake(std::FILE*, string_view, format_args);
2940
+ #ifndef _WIN32
2941
+ inline void vprint_mojibake(std::FILE*, string_view, format_args) {}
2942
+ #endif
2943
+ FMT_END_DETAIL_NAMESPACE
2944
+
2945
+ // A formatter specialization for the core types corresponding to detail::type
2946
+ // constants.
2947
+ template <typename T, typename Char>
2948
+ struct formatter<T, Char,
2949
+ enable_if_t<detail::type_constant<T, Char>::value !=
2950
+ detail::type::custom_type>> {
2951
+ private:
2952
+ detail::dynamic_format_specs<Char> specs_;
2953
+
2954
+ public:
2955
+ // Parses format specifiers stopping either at the end of the range or at the
2956
+ // terminating '}'.
2957
+ template <typename ParseContext>
2958
+ FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {
2959
+ auto begin = ctx.begin(), end = ctx.end();
2960
+ if (begin == end) return begin;
2961
+ using handler_type = detail::dynamic_specs_handler<ParseContext>;
2962
+ auto type = detail::type_constant<T, Char>::value;
2963
+ auto checker =
2964
+ detail::specs_checker<handler_type>(handler_type(specs_, ctx), type);
2965
+ auto it = detail::parse_format_specs(begin, end, checker);
2966
+ auto eh = ctx.error_handler();
2967
+ switch (type) {
2968
+ case detail::type::none_type:
2969
+ FMT_ASSERT(false, "invalid argument type");
2970
+ break;
2971
+ case detail::type::bool_type:
2972
+ if (specs_.type == presentation_type::none ||
2973
+ specs_.type == presentation_type::string) {
2974
+ break;
2975
+ }
2976
+ FMT_FALLTHROUGH;
2977
+ case detail::type::int_type:
2978
+ case detail::type::uint_type:
2979
+ case detail::type::long_long_type:
2980
+ case detail::type::ulong_long_type:
2981
+ case detail::type::int128_type:
2982
+ case detail::type::uint128_type:
2983
+ detail::check_int_type_spec(specs_.type, eh);
2984
+ break;
2985
+ case detail::type::char_type:
2986
+ detail::check_char_specs(specs_, eh);
2987
+ break;
2988
+ case detail::type::float_type:
2989
+ if (detail::const_check(FMT_USE_FLOAT))
2990
+ detail::parse_float_type_spec(specs_, eh);
2991
+ else
2992
+ FMT_ASSERT(false, "float support disabled");
2993
+ break;
2994
+ case detail::type::double_type:
2995
+ if (detail::const_check(FMT_USE_DOUBLE))
2996
+ detail::parse_float_type_spec(specs_, eh);
2997
+ else
2998
+ FMT_ASSERT(false, "double support disabled");
2999
+ break;
3000
+ case detail::type::long_double_type:
3001
+ if (detail::const_check(FMT_USE_LONG_DOUBLE))
3002
+ detail::parse_float_type_spec(specs_, eh);
3003
+ else
3004
+ FMT_ASSERT(false, "long double support disabled");
3005
+ break;
3006
+ case detail::type::cstring_type:
3007
+ detail::check_cstring_type_spec(specs_.type, eh);
3008
+ break;
3009
+ case detail::type::string_type:
3010
+ detail::check_string_type_spec(specs_.type, eh);
3011
+ break;
3012
+ case detail::type::pointer_type:
3013
+ detail::check_pointer_type_spec(specs_.type, eh);
3014
+ break;
3015
+ case detail::type::custom_type:
3016
+ // Custom format specifiers are checked in parse functions of
3017
+ // formatter specializations.
3018
+ break;
3019
+ }
3020
+ return it;
3021
+ }
3022
+
3023
+ template <typename FormatContext>
3024
+ FMT_CONSTEXPR auto format(const T& val, FormatContext& ctx) const
3025
+ -> decltype(ctx.out());
3026
+ };
3027
+
3028
+ template <typename Char> struct basic_runtime { basic_string_view<Char> str; };
3029
+
3030
+ /** A compile-time format string. */
3031
+ template <typename Char, typename... Args> class basic_format_string {
3032
+ private:
3033
+ basic_string_view<Char> str_;
3034
+
3035
+ public:
3036
+ template <typename S,
3037
+ FMT_ENABLE_IF(
3038
+ std::is_convertible<const S&, basic_string_view<Char>>::value)>
3039
+ FMT_CONSTEVAL FMT_INLINE basic_format_string(const S& s) : str_(s) {
3040
+ static_assert(
3041
+ detail::count<
3042
+ (std::is_base_of<detail::view, remove_reference_t<Args>>::value &&
3043
+ std::is_reference<Args>::value)...>() == 0,
3044
+ "passing views as lvalues is disallowed");
3045
+ #ifdef FMT_HAS_CONSTEVAL
3046
+ if constexpr (detail::count_named_args<Args...>() == 0) {
3047
+ using checker = detail::format_string_checker<Char, detail::error_handler,
3048
+ remove_cvref_t<Args>...>;
3049
+ detail::parse_format_string<true>(str_, checker(s, {}));
3050
+ }
3051
+ #else
3052
+ detail::check_format_string<Args...>(s);
3053
+ #endif
3054
+ }
3055
+ basic_format_string(basic_runtime<Char> r) : str_(r.str) {}
3056
+
3057
+ FMT_INLINE operator basic_string_view<Char>() const { return str_; }
3058
+ };
3059
+
3060
+ #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
3061
+ // Workaround broken conversion on older gcc.
3062
+ template <typename... Args> using format_string = string_view;
3063
+ template <typename S> auto runtime(const S& s) -> basic_string_view<char_t<S>> {
3064
+ return s;
3065
+ }
3066
+ #else
3067
+ template <typename... Args>
3068
+ using format_string = basic_format_string<char, type_identity_t<Args>...>;
3069
+ /**
3070
+ \rst
3071
+ Creates a runtime format string.
3072
+
3073
+ **Example**::
3074
+
3075
+ // Check format string at runtime instead of compile-time.
3076
+ fmt::print(fmt::runtime("{:d}"), "I am not a number");
3077
+ \endrst
3078
+ */
3079
+ template <typename S> auto runtime(const S& s) -> basic_runtime<char_t<S>> {
3080
+ return {{s}};
3081
+ }
3082
+ #endif
3083
+
3084
+ FMT_API auto vformat(string_view fmt, format_args args) -> std::string;
3085
+
3086
+ /**
3087
+ \rst
3088
+ Formats ``args`` according to specifications in ``fmt`` and returns the result
3089
+ as a string.
3090
+
3091
+ **Example**::
3092
+
3093
+ #include <fmt/core.h>
3094
+ std::string message = fmt::format("The answer is {}.", 42);
3095
+ \endrst
3096
+ */
3097
+ template <typename... T>
3098
+ FMT_NODISCARD FMT_INLINE auto format(format_string<T...> fmt, T&&... args)
3099
+ -> std::string {
3100
+ return vformat(fmt, fmt::make_format_args(args...));
3101
+ }
3102
+
3103
+ /** Formats a string and writes the output to ``out``. */
3104
+ template <typename OutputIt,
3105
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
3106
+ auto vformat_to(OutputIt out, string_view fmt, format_args args) -> OutputIt {
3107
+ using detail::get_buffer;
3108
+ auto&& buf = get_buffer<char>(out);
3109
+ detail::vformat_to(buf, fmt, args, {});
3110
+ return detail::get_iterator(buf);
3111
+ }
3112
+
3113
+ /**
3114
+ \rst
3115
+ Formats ``args`` according to specifications in ``fmt``, writes the result to
3116
+ the output iterator ``out`` and returns the iterator past the end of the output
3117
+ range. `format_to` does not append a terminating null character.
3118
+
3119
+ **Example**::
3120
+
3121
+ auto out = std::vector<char>();
3122
+ fmt::format_to(std::back_inserter(out), "{}", 42);
3123
+ \endrst
3124
+ */
3125
+ template <typename OutputIt, typename... T,
3126
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
3127
+ FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
3128
+ -> OutputIt {
3129
+ return vformat_to(out, fmt, fmt::make_format_args(args...));
3130
+ }
3131
+
3132
+ template <typename OutputIt> struct format_to_n_result {
3133
+ /** Iterator past the end of the output range. */
3134
+ OutputIt out;
3135
+ /** Total (not truncated) output size. */
3136
+ size_t size;
3137
+ };
3138
+
3139
+ template <typename OutputIt, typename... T,
3140
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
3141
+ auto vformat_to_n(OutputIt out, size_t n, string_view fmt, format_args args)
3142
+ -> format_to_n_result<OutputIt> {
3143
+ using traits = detail::fixed_buffer_traits;
3144
+ auto buf = detail::iterator_buffer<OutputIt, char, traits>(out, n);
3145
+ detail::vformat_to(buf, fmt, args, {});
3146
+ return {buf.out(), buf.count()};
3147
+ }
3148
+
3149
+ /**
3150
+ \rst
3151
+ Formats ``args`` according to specifications in ``fmt``, writes up to ``n``
3152
+ characters of the result to the output iterator ``out`` and returns the total
3153
+ (not truncated) output size and the iterator past the end of the output range.
3154
+ `format_to_n` does not append a terminating null character.
3155
+ \endrst
3156
+ */
3157
+ template <typename OutputIt, typename... T,
3158
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
3159
+ FMT_INLINE auto format_to_n(OutputIt out, size_t n, format_string<T...> fmt,
3160
+ T&&... args) -> format_to_n_result<OutputIt> {
3161
+ return vformat_to_n(out, n, fmt, fmt::make_format_args(args...));
3162
+ }
3163
+
3164
+ /** Returns the number of chars in the output of ``format(fmt, args...)``. */
3165
+ template <typename... T>
3166
+ FMT_NODISCARD FMT_INLINE auto formatted_size(format_string<T...> fmt,
3167
+ T&&... args) -> size_t {
3168
+ auto buf = detail::counting_buffer<>();
3169
+ detail::vformat_to(buf, string_view(fmt), fmt::make_format_args(args...), {});
3170
+ return buf.count();
3171
+ }
3172
+
3173
+ FMT_API void vprint(string_view fmt, format_args args);
3174
+ FMT_API void vprint(std::FILE* f, string_view fmt, format_args args);
3175
+
3176
+ /**
3177
+ \rst
3178
+ Formats ``args`` according to specifications in ``fmt`` and writes the output
3179
+ to ``stdout``.
3180
+
3181
+ **Example**::
3182
+
3183
+ fmt::print("Elapsed time: {0:.2f} seconds", 1.23);
3184
+ \endrst
3185
+ */
3186
+ template <typename... T>
3187
+ FMT_INLINE void print(format_string<T...> fmt, T&&... args) {
3188
+ const auto& vargs = fmt::make_format_args(args...);
3189
+ return detail::is_utf8() ? vprint(fmt, vargs)
3190
+ : detail::vprint_mojibake(stdout, fmt, vargs);
3191
+ }
3192
+
3193
+ /**
3194
+ \rst
3195
+ Formats ``args`` according to specifications in ``fmt`` and writes the
3196
+ output to the file ``f``.
3197
+
3198
+ **Example**::
3199
+
3200
+ fmt::print(stderr, "Don't {}!", "panic");
3201
+ \endrst
3202
+ */
3203
+ template <typename... T>
3204
+ FMT_INLINE void print(std::FILE* f, format_string<T...> fmt, T&&... args) {
3205
+ const auto& vargs = fmt::make_format_args(args...);
3206
+ return detail::is_utf8() ? vprint(f, fmt, vargs)
3207
+ : detail::vprint_mojibake(f, fmt, vargs);
3208
+ }
3209
+
3210
+ FMT_MODULE_EXPORT_END
3211
+ FMT_GCC_PRAGMA("GCC pop_options")
3212
+ FMT_END_NAMESPACE
3213
+
3214
+ #ifdef FMT_HEADER_ONLY
3215
+ # include "format.h"
3216
+ #endif
3217
+ #endif // FMT_CORE_H_