couchbase 3.0.0.alpha.5-x86_64-linux → 3.5.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1510) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -13
  3. data/ext/extconf.rb +0 -47
  4. data/lib/active_support/cache/couchbase_store.rb +339 -0
  5. data/lib/couchbase/3.0/libcouchbase.so +0 -0
  6. data/lib/couchbase/3.1/libcouchbase.so +0 -0
  7. data/lib/couchbase/3.2/libcouchbase.so +0 -0
  8. data/lib/couchbase/3.3/libcouchbase.so +0 -0
  9. data/lib/couchbase/analytics_options.rb +2 -60
  10. data/lib/couchbase/authenticator.rb +40 -1
  11. data/lib/couchbase/binary_collection.rb +66 -27
  12. data/lib/couchbase/binary_collection_options.rb +1 -75
  13. data/lib/couchbase/bucket.rb +47 -42
  14. data/lib/couchbase/cluster.rb +310 -168
  15. data/lib/couchbase/cluster_registry.rb +49 -0
  16. data/lib/couchbase/collection.rb +482 -108
  17. data/lib/couchbase/collection_options.rb +219 -310
  18. data/lib/couchbase/config_profiles.rb +55 -0
  19. data/lib/couchbase/configuration.rb +56 -0
  20. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  21. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  22. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  23. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  24. data/lib/couchbase/datastructures.rb +24 -0
  25. data/lib/couchbase/diagnostics.rb +181 -0
  26. data/lib/couchbase/errors.rb +218 -66
  27. data/lib/couchbase/json_transcoder.rb +12 -5
  28. data/lib/couchbase/key_value_scan.rb +117 -0
  29. data/lib/couchbase/libcouchbase.rb +6 -0
  30. data/lib/couchbase/logger.rb +85 -0
  31. data/lib/couchbase/management/analytics_index_manager.rb +923 -229
  32. data/lib/couchbase/management/bucket_manager.rb +298 -107
  33. data/lib/couchbase/management/collection_manager.rb +329 -61
  34. data/lib/couchbase/management/collection_query_index_manager.rb +222 -0
  35. data/lib/couchbase/management/query_index_manager.rb +462 -142
  36. data/lib/couchbase/management/scope_search_index_manager.rb +198 -0
  37. data/lib/couchbase/management/search_index_manager.rb +90 -30
  38. data/lib/couchbase/management/user_manager.rb +196 -51
  39. data/lib/couchbase/management/view_index_manager.rb +12 -6
  40. data/lib/couchbase/management.rb +29 -0
  41. data/lib/couchbase/mutation_state.rb +14 -1
  42. data/lib/couchbase/options.rb +2837 -0
  43. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  44. data/lib/couchbase/protostellar/bucket.rb +51 -0
  45. data/lib/couchbase/protostellar/client.rb +99 -0
  46. data/lib/couchbase/protostellar/cluster.rb +163 -0
  47. data/lib/couchbase/protostellar/collection.rb +152 -0
  48. data/lib/couchbase/protostellar/connect_options.rb +63 -0
  49. data/lib/couchbase/protostellar/error_handling.rb +203 -0
  50. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +61 -0
  51. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +35 -0
  52. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +57 -0
  53. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +36 -0
  54. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +61 -0
  55. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +37 -0
  56. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +72 -0
  57. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +44 -0
  58. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +52 -0
  59. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +30 -0
  60. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +70 -0
  61. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +36 -0
  62. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +97 -0
  63. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +46 -0
  64. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +57 -0
  65. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +30 -0
  66. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +52 -0
  67. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +30 -0
  68. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +99 -0
  69. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +30 -0
  70. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +57 -0
  71. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +36 -0
  72. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +51 -0
  73. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +30 -0
  74. data/lib/couchbase/protostellar/generated.rb +9 -0
  75. data/lib/couchbase/protostellar/management/bucket_manager.rb +67 -0
  76. data/lib/couchbase/protostellar/management/collection_manager.rb +94 -0
  77. data/lib/couchbase/protostellar/management/collection_query_index_manager.rb +124 -0
  78. data/lib/couchbase/protostellar/management/query_index_manager.rb +112 -0
  79. data/{Gemfile → lib/couchbase/protostellar/management.rb} +8 -8
  80. data/lib/couchbase/protostellar/request.rb +78 -0
  81. data/lib/couchbase/protostellar/request_behaviour.rb +42 -0
  82. data/lib/couchbase/protostellar/request_generator/admin/bucket.rb +124 -0
  83. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +94 -0
  84. data/lib/couchbase/protostellar/request_generator/admin/query.rb +130 -0
  85. data/lib/couchbase/protostellar/request_generator/admin.rb +24 -0
  86. data/lib/couchbase/protostellar/request_generator/kv.rb +474 -0
  87. data/lib/couchbase/protostellar/request_generator/query.rb +133 -0
  88. data/lib/couchbase/protostellar/request_generator/search.rb +387 -0
  89. data/{bin/setup → lib/couchbase/protostellar/request_generator.rb} +12 -10
  90. data/lib/couchbase/protostellar/response_converter/admin/bucket.rb +55 -0
  91. data/lib/couchbase/protostellar/response_converter/admin/collection.rb +42 -0
  92. data/lib/couchbase/protostellar/response_converter/admin/query.rb +59 -0
  93. data/lib/couchbase/protostellar/response_converter/admin.rb +24 -0
  94. data/lib/couchbase/protostellar/response_converter/kv.rb +151 -0
  95. data/lib/couchbase/protostellar/response_converter/query.rb +84 -0
  96. data/lib/couchbase/protostellar/response_converter/search.rb +136 -0
  97. data/lib/couchbase/protostellar/response_converter.rb +26 -0
  98. data/lib/couchbase/protostellar/retry/action.rb +38 -0
  99. data/lib/couchbase/protostellar/retry/orchestrator.rb +60 -0
  100. data/lib/couchbase/protostellar/retry/reason.rb +67 -0
  101. data/lib/couchbase/protostellar/retry/strategies/best_effort.rb +49 -0
  102. data/lib/couchbase/protostellar/retry/strategies.rb +26 -0
  103. data/lib/couchbase/protostellar/retry.rb +28 -0
  104. data/lib/couchbase/protostellar/scope.rb +57 -0
  105. data/lib/couchbase/protostellar/timeout_defaults.rb +30 -0
  106. data/lib/couchbase/protostellar/timeouts.rb +83 -0
  107. data/lib/couchbase/{common_options.rb → protostellar.rb} +12 -12
  108. data/lib/couchbase/query_options.rb +7 -106
  109. data/lib/couchbase/railtie.rb +45 -0
  110. data/lib/couchbase/raw_binary_transcoder.rb +37 -0
  111. data/lib/couchbase/raw_json_transcoder.rb +38 -0
  112. data/lib/couchbase/raw_string_transcoder.rb +40 -0
  113. data/lib/couchbase/scope.rb +217 -10
  114. data/lib/couchbase/search_options.rb +1306 -1176
  115. data/lib/couchbase/subdoc.rb +33 -30
  116. data/lib/couchbase/transcoder_flags.rb +62 -0
  117. data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
  118. data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
  119. data/lib/couchbase/utils/time.rb +69 -0
  120. data/{bin/console → lib/couchbase/utils.rb} +7 -7
  121. data/lib/couchbase/version.rb +8 -3
  122. data/lib/couchbase/view_options.rb +5 -95
  123. data/lib/couchbase.rb +11 -1
  124. data/lib/rails/generators/couchbase/config/config_generator.rb +27 -0
  125. metadata +114 -1445
  126. data/.github/workflows/tests-6.0.3.yml +0 -52
  127. data/.github/workflows/tests-dev-preview.yml +0 -55
  128. data/.github/workflows/tests.yml +0 -50
  129. data/.gitignore +0 -20
  130. data/.gitmodules +0 -21
  131. data/.idea/.gitignore +0 -5
  132. data/.idea/dictionaries/gem_terms.xml +0 -18
  133. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  134. data/.idea/vcs.xml +0 -13
  135. data/.yardopts +0 -1
  136. data/Rakefile +0 -51
  137. data/bin/check-cluster +0 -31
  138. data/bin/fetch-stats +0 -19
  139. data/bin/init-cluster +0 -82
  140. data/bin/jenkins/build-extension +0 -35
  141. data/bin/jenkins/install-dependencies +0 -47
  142. data/bin/jenkins/test-with-cbdyncluster +0 -58
  143. data/couchbase.gemspec +0 -73
  144. data/examples/analytics.rb +0 -221
  145. data/examples/crud.rb +0 -20
  146. data/examples/managing_analytics_indexes.rb +0 -72
  147. data/examples/managing_buckets.rb +0 -47
  148. data/examples/managing_collections.rb +0 -58
  149. data/examples/managing_query_indexes.rb +0 -63
  150. data/examples/managing_search_indexes.rb +0 -62
  151. data/examples/managing_view_indexes.rb +0 -54
  152. data/examples/query.rb +0 -18
  153. data/examples/query_with_consistency.rb +0 -76
  154. data/examples/search.rb +0 -187
  155. data/examples/search_with_consistency.rb +0 -84
  156. data/examples/subdocument.rb +0 -51
  157. data/examples/view.rb +0 -50
  158. data/ext/.clang-format +0 -15
  159. data/ext/.clang-tidy +0 -22
  160. data/ext/.cmake-format.yaml +0 -8
  161. data/ext/.gitignore +0 -2
  162. data/ext/.idea/.name +0 -1
  163. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  164. data/ext/.idea/ext.iml +0 -2
  165. data/ext/.idea/misc.xml +0 -4
  166. data/ext/.idea/modules.xml +0 -8
  167. data/ext/.idea/vcs.xml +0 -12
  168. data/ext/CMakeLists.txt +0 -163
  169. data/ext/LICENSE.txt +0 -202
  170. data/ext/build_version.hxx.in +0 -26
  171. data/ext/couchbase/bucket.hxx +0 -95
  172. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  173. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  174. data/ext/couchbase/cbsasl/client.cc +0 -48
  175. data/ext/couchbase/cbsasl/client.h +0 -127
  176. data/ext/couchbase/cbsasl/context.cc +0 -33
  177. data/ext/couchbase/cbsasl/context.h +0 -52
  178. data/ext/couchbase/cbsasl/error.h +0 -72
  179. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  180. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  181. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  182. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  183. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  184. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  185. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  186. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +0 -48
  187. data/ext/couchbase/cluster.hxx +0 -176
  188. data/ext/couchbase/collections_manifest.hxx +0 -88
  189. data/ext/couchbase/configuration.hxx +0 -256
  190. data/ext/couchbase/configuration_monitor.hxx +0 -93
  191. data/ext/couchbase/couchbase.cxx +0 -5449
  192. data/ext/couchbase/document_id.hxx +0 -38
  193. data/ext/couchbase/error_map.hxx +0 -61
  194. data/ext/couchbase/errors.hxx +0 -691
  195. data/ext/couchbase/io/dns_client.hxx +0 -215
  196. data/ext/couchbase/io/dns_codec.hxx +0 -207
  197. data/ext/couchbase/io/dns_config.hxx +0 -116
  198. data/ext/couchbase/io/dns_message.hxx +0 -555
  199. data/ext/couchbase/io/http_message.hxx +0 -38
  200. data/ext/couchbase/io/http_parser.hxx +0 -174
  201. data/ext/couchbase/io/http_session.hxx +0 -321
  202. data/ext/couchbase/io/http_session_manager.hxx +0 -127
  203. data/ext/couchbase/io/mcbp_message.hxx +0 -58
  204. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  205. data/ext/couchbase/io/mcbp_session.hxx +0 -931
  206. data/ext/couchbase/mutation_token.hxx +0 -38
  207. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -117
  208. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -103
  209. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -107
  210. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -104
  211. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -104
  212. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -91
  213. data/ext/couchbase/operations/analytics_index_create.hxx +0 -128
  214. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -110
  215. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -106
  216. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -102
  217. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -101
  218. data/ext/couchbase/operations/bucket_create.hxx +0 -139
  219. data/ext/couchbase/operations/bucket_drop.hxx +0 -66
  220. data/ext/couchbase/operations/bucket_flush.hxx +0 -66
  221. data/ext/couchbase/operations/bucket_get.hxx +0 -70
  222. data/ext/couchbase/operations/bucket_get_all.hxx +0 -63
  223. data/ext/couchbase/operations/bucket_settings.hxx +0 -111
  224. data/ext/couchbase/operations/bucket_update.hxx +0 -116
  225. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -61
  226. data/ext/couchbase/operations/collection_create.hxx +0 -91
  227. data/ext/couchbase/operations/collection_drop.hxx +0 -83
  228. data/ext/couchbase/operations/command.hxx +0 -163
  229. data/ext/couchbase/operations/design_document.hxx +0 -59
  230. data/ext/couchbase/operations/document_analytics.hxx +0 -292
  231. data/ext/couchbase/operations/document_decrement.hxx +0 -82
  232. data/ext/couchbase/operations/document_exists.hxx +0 -82
  233. data/ext/couchbase/operations/document_get.hxx +0 -64
  234. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -66
  235. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -66
  236. data/ext/couchbase/operations/document_get_projected.hxx +0 -244
  237. data/ext/couchbase/operations/document_increment.hxx +0 -84
  238. data/ext/couchbase/operations/document_insert.hxx +0 -76
  239. data/ext/couchbase/operations/document_lookup_in.hxx +0 -106
  240. data/ext/couchbase/operations/document_mutate_in.hxx +0 -139
  241. data/ext/couchbase/operations/document_query.hxx +0 -335
  242. data/ext/couchbase/operations/document_remove.hxx +0 -69
  243. data/ext/couchbase/operations/document_replace.hxx +0 -78
  244. data/ext/couchbase/operations/document_search.hxx +0 -356
  245. data/ext/couchbase/operations/document_touch.hxx +0 -62
  246. data/ext/couchbase/operations/document_unlock.hxx +0 -62
  247. data/ext/couchbase/operations/document_upsert.hxx +0 -76
  248. data/ext/couchbase/operations/document_view.hxx +0 -228
  249. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -86
  250. data/ext/couchbase/operations/query_index_create.hxx +0 -135
  251. data/ext/couchbase/operations/query_index_drop.hxx +0 -109
  252. data/ext/couchbase/operations/query_index_get_all.hxx +0 -107
  253. data/ext/couchbase/operations/scope_create.hxx +0 -82
  254. data/ext/couchbase/operations/scope_drop.hxx +0 -80
  255. data/ext/couchbase/operations/scope_get_all.hxx +0 -74
  256. data/ext/couchbase/operations/search_index.hxx +0 -79
  257. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -92
  258. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -80
  259. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -80
  260. data/ext/couchbase/operations/search_index_control_query.hxx +0 -80
  261. data/ext/couchbase/operations/search_index_drop.hxx +0 -77
  262. data/ext/couchbase/operations/search_index_get.hxx +0 -80
  263. data/ext/couchbase/operations/search_index_get_all.hxx +0 -82
  264. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -81
  265. data/ext/couchbase/operations/search_index_upsert.hxx +0 -106
  266. data/ext/couchbase/operations/view_index_drop.hxx +0 -67
  267. data/ext/couchbase/operations/view_index_get.hxx +0 -90
  268. data/ext/couchbase/operations/view_index_get_all.hxx +0 -125
  269. data/ext/couchbase/operations/view_index_upsert.hxx +0 -87
  270. data/ext/couchbase/operations.hxx +0 -91
  271. data/ext/couchbase/platform/base64.cc +0 -234
  272. data/ext/couchbase/platform/base64.h +0 -47
  273. data/ext/couchbase/platform/random.cc +0 -119
  274. data/ext/couchbase/platform/random.h +0 -39
  275. data/ext/couchbase/platform/string_hex.cc +0 -99
  276. data/ext/couchbase/platform/string_hex.h +0 -50
  277. data/ext/couchbase/platform/uuid.cc +0 -96
  278. data/ext/couchbase/platform/uuid.h +0 -56
  279. data/ext/couchbase/protocol/client_opcode.hxx +0 -264
  280. data/ext/couchbase/protocol/client_request.hxx +0 -160
  281. data/ext/couchbase/protocol/client_response.hxx +0 -218
  282. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -81
  283. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  284. data/ext/couchbase/protocol/cmd_exists.hxx +0 -171
  285. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  286. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  287. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  288. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -124
  289. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  290. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  291. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  292. data/ext/couchbase/protocol/cmd_hello.hxx +0 -156
  293. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  294. data/ext/couchbase/protocol/cmd_info.hxx +0 -36
  295. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  296. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -219
  297. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -365
  298. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  299. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  300. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  301. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  302. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  303. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  304. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  305. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  306. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  307. data/ext/couchbase/protocol/datatype.hxx +0 -48
  308. data/ext/couchbase/protocol/durability_level.hxx +0 -67
  309. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  310. data/ext/couchbase/protocol/hello_feature.hxx +0 -255
  311. data/ext/couchbase/protocol/magic.hxx +0 -83
  312. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  313. data/ext/couchbase/protocol/server_request.hxx +0 -122
  314. data/ext/couchbase/protocol/status.hxx +0 -333
  315. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  316. data/ext/couchbase/service_type.hxx +0 -60
  317. data/ext/couchbase/timeout_defaults.hxx +0 -34
  318. data/ext/couchbase/utils/byteswap.hxx +0 -33
  319. data/ext/couchbase/utils/connection_string.hxx +0 -231
  320. data/ext/couchbase/utils/crc32.hxx +0 -48
  321. data/ext/couchbase/utils/url_codec.hxx +0 -225
  322. data/ext/couchbase/version.hxx +0 -24
  323. data/ext/test/main.cxx +0 -58
  324. data/ext/third_party/asio/.appveyor.yml +0 -107
  325. data/ext/third_party/asio/.cirrus.yml +0 -16
  326. data/ext/third_party/asio/.gitignore +0 -3
  327. data/ext/third_party/asio/.travis.yml +0 -323
  328. data/ext/third_party/asio/asio/.gitignore +0 -23
  329. data/ext/third_party/asio/asio/COPYING +0 -4
  330. data/ext/third_party/asio/asio/INSTALL +0 -5
  331. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  332. data/ext/third_party/asio/asio/Makefile.am +0 -19
  333. data/ext/third_party/asio/asio/README +0 -4
  334. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  335. data/ext/third_party/asio/asio/autogen.sh +0 -55
  336. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  337. data/ext/third_party/asio/asio/boostify.pl +0 -603
  338. data/ext/third_party/asio/asio/configure.ac +0 -182
  339. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  340. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  341. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -131
  342. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -149
  343. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -589
  344. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -123
  345. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1210
  346. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  347. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  348. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1202
  349. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -756
  350. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  351. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  352. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  353. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2495
  354. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  355. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  356. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1049
  357. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  358. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  359. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -763
  360. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -580
  361. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2494
  362. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  363. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  364. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  365. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  366. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  367. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  368. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  369. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -100
  370. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  371. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  372. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  373. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  374. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  375. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -127
  376. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -62
  377. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  378. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  379. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  380. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -45
  381. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  382. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -816
  383. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  384. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -544
  385. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  386. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  387. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  388. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  389. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -83
  390. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  391. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -112
  392. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  393. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1499
  394. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  395. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  396. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  397. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  398. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -280
  399. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  400. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -121
  401. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -130
  402. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -130
  403. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  404. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  405. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  406. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  407. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -104
  408. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  409. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  410. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  411. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  412. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  413. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  414. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  415. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  416. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  417. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  418. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -242
  419. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  420. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -57
  421. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -238
  422. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  423. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -113
  424. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  425. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  426. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -474
  427. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  428. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  429. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  430. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  431. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  432. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -358
  433. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  434. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  435. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  436. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  437. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  438. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  439. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  440. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  441. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  442. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -152
  443. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  444. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  445. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -617
  446. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  447. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  448. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  449. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  450. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -667
  451. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3575
  452. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  453. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -179
  454. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  455. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -118
  456. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -177
  457. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  458. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  459. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  460. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  461. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  462. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  463. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -594
  464. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  465. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  466. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  467. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  468. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  469. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  470. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  471. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  472. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  473. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  474. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  475. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  476. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  477. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -193
  478. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  479. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  480. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  481. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  482. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +0 -26
  483. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  484. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  485. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -70
  486. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  487. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  488. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  489. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -100
  490. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  491. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  492. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  493. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  494. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  495. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  496. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  497. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  498. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  499. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  500. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  501. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  502. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  503. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  504. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  505. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -162
  506. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  507. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  508. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  509. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  510. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  511. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  512. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  513. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  514. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -391
  515. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -92
  516. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -238
  517. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -230
  518. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -116
  519. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -137
  520. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -142
  521. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -135
  522. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -136
  523. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -134
  524. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -505
  525. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -518
  526. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -92
  527. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  528. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  529. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -65
  530. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  531. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  532. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  533. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -138
  534. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  535. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -148
  536. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  537. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  538. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -224
  539. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  540. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  541. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  542. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  543. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  544. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  545. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  546. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  547. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -88
  548. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  549. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  550. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  551. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  552. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -337
  553. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  554. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  555. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  556. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  557. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  558. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -176
  559. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  560. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  561. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  562. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  563. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  564. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -142
  565. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -142
  566. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  567. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  568. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  569. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  570. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -125
  571. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  572. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  573. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  574. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  575. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  576. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  577. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  578. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  579. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  580. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -89
  581. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -151
  582. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -87
  583. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  584. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -151
  585. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  586. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  587. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  588. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -113
  589. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  590. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -106
  591. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -338
  592. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -123
  593. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  594. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -92
  595. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -159
  596. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  597. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -308
  598. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -130
  599. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -120
  600. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -129
  601. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -121
  602. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -114
  603. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  604. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  605. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  606. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -123
  607. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  608. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  609. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  610. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  611. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  612. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  613. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  614. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  615. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  616. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -121
  617. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  618. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -94
  619. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -115
  620. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -106
  621. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  622. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  623. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  624. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  625. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  626. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -73
  627. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -291
  628. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -118
  629. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  630. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  631. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  632. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -341
  633. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -170
  634. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  635. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  636. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  637. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  638. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  639. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  640. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  641. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -81
  642. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  643. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -85
  644. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  645. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -422
  646. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -491
  647. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -471
  648. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -160
  649. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -533
  650. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -872
  651. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -113
  652. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  653. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -113
  654. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  655. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  656. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  657. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  658. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -387
  659. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -38
  660. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -52
  661. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -353
  662. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  663. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -113
  664. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1135
  665. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -699
  666. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3150
  667. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -372
  668. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  669. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  670. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -490
  671. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  672. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -82
  673. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  674. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -80
  675. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -85
  676. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -127
  677. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -87
  678. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -276
  679. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -887
  680. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1043
  681. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -624
  682. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -872
  683. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -374
  684. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  685. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  686. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  687. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  688. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  689. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  690. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  691. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  692. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  693. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  694. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  695. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  696. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  697. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  698. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  699. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  700. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  701. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  702. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  703. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  704. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  705. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  706. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  707. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  708. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  709. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  710. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  711. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  712. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  713. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  714. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  715. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  716. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  717. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  718. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  719. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  720. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  721. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  722. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  723. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  724. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  725. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  726. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  727. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  728. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  729. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  730. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  731. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  732. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  733. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  734. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  735. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  736. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  737. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  738. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  739. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  740. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  741. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  742. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -123
  743. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  744. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  745. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  746. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  747. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  748. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  749. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  750. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  751. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -336
  752. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  753. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  754. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -114
  755. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -160
  756. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -62
  757. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -336
  758. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  759. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -381
  760. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  761. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  762. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  763. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -67
  764. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -64
  765. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -135
  766. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  767. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -67
  768. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  769. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  770. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  771. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  772. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  773. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  774. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  775. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  776. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  777. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -885
  778. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  779. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  780. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  781. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  782. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  783. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -314
  784. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  785. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -81
  786. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  787. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -129
  788. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  789. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  790. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  791. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -235
  792. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  793. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  794. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -34
  795. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  796. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  797. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  798. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -203
  799. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  800. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  801. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  802. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -110
  803. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  804. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  805. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  806. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  807. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  808. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  809. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  810. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  811. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  812. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  813. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -143
  814. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  815. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  816. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  817. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  818. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  819. data/ext/third_party/asio/asio/include/asio.hpp +0 -147
  820. data/ext/third_party/asio/asio/release.pl +0 -440
  821. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  822. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  823. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  824. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  825. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  826. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  827. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  828. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  829. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  830. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  831. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  832. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  833. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  834. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  835. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  836. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  837. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  838. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  839. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  840. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  841. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  842. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  845. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  846. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  847. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  848. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  849. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  850. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  851. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  852. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  853. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  854. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  855. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  856. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  857. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  858. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  859. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  860. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  861. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  862. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  863. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  864. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  865. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  866. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  867. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  868. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  869. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  870. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  871. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  872. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  873. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  874. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  875. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  876. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  877. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  878. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  879. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  880. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  881. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  882. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  883. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  884. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  886. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  887. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  888. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  889. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  890. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  891. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  892. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  893. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  894. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  895. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  896. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  897. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  898. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  899. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  900. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  901. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  902. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  903. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  904. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  905. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  906. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  907. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  908. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  909. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  910. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  911. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  912. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  913. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  914. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  915. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  916. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  917. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  918. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  919. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  920. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  921. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  922. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  924. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  925. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  926. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  927. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  928. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  929. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  930. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  931. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  932. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  933. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  934. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  935. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  936. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  937. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  938. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  939. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  940. data/ext/third_party/asio/asio/tsify.pl +0 -574
  941. data/ext/third_party/gsl/.clang-format +0 -34
  942. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  943. data/ext/third_party/gsl/.gitignore +0 -16
  944. data/ext/third_party/gsl/.travis.yml +0 -551
  945. data/ext/third_party/gsl/CMakeLists.txt +0 -119
  946. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  947. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  948. data/ext/third_party/gsl/GSL.natvis +0 -98
  949. data/ext/third_party/gsl/LICENSE +0 -21
  950. data/ext/third_party/gsl/README.md +0 -124
  951. data/ext/third_party/gsl/ThirdPartyNotices.txt +0 -41
  952. data/ext/third_party/gsl/appveyor.yml +0 -128
  953. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  954. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  955. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  956. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  957. data/ext/third_party/gsl/include/gsl/gsl_util +0 -171
  958. data/ext/third_party/gsl/include/gsl/multi_span +0 -2273
  959. data/ext/third_party/gsl/include/gsl/pointers +0 -301
  960. data/ext/third_party/gsl/include/gsl/span +0 -764
  961. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  962. data/ext/third_party/gsl/include/gsl/string_span +0 -716
  963. data/ext/third_party/http_parser/.gitignore +0 -30
  964. data/ext/third_party/http_parser/.mailmap +0 -8
  965. data/ext/third_party/http_parser/.travis.yml +0 -13
  966. data/ext/third_party/http_parser/AUTHORS +0 -68
  967. data/ext/third_party/http_parser/LICENSE-MIT +0 -19
  968. data/ext/third_party/http_parser/Makefile +0 -160
  969. data/ext/third_party/http_parser/README.md +0 -246
  970. data/ext/third_party/http_parser/bench.c +0 -128
  971. data/ext/third_party/http_parser/http_parser.c +0 -2568
  972. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  973. data/ext/third_party/http_parser/http_parser.h +0 -447
  974. data/ext/third_party/http_parser/test.c +0 -4600
  975. data/ext/third_party/json/.appveyor.yml +0 -44
  976. data/ext/third_party/json/.clang-format +0 -84
  977. data/ext/third_party/json/.conan/build.py +0 -80
  978. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  979. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  980. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  981. data/ext/third_party/json/.gitignore +0 -3
  982. data/ext/third_party/json/.travis.yml +0 -173
  983. data/ext/third_party/json/CMakeLists.txt +0 -44
  984. data/ext/third_party/json/LICENSE +0 -21
  985. data/ext/third_party/json/LICENSE.double-conversion +0 -32
  986. data/ext/third_party/json/LICENSE.itoa +0 -19
  987. data/ext/third_party/json/LICENSE.ryu +0 -201
  988. data/ext/third_party/json/Makefile +0 -77
  989. data/ext/third_party/json/README.md +0 -149
  990. data/ext/third_party/json/conanfile.py +0 -28
  991. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -941
  992. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  993. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  994. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  995. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  996. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -250
  997. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  998. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  999. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  1000. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -103
  1001. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  1002. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -267
  1003. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  1004. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  1005. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  1006. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -127
  1007. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  1008. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  1009. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  1010. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  1011. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  1012. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  1013. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  1014. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  1015. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  1016. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  1017. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  1018. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -417
  1019. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  1020. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  1021. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  1022. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  1023. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -18
  1024. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  1025. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  1026. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  1027. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  1028. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  1029. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  1030. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  1031. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  1032. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -69
  1033. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  1034. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  1035. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  1036. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  1037. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  1038. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  1039. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  1040. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  1041. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +0 -59
  1042. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  1043. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -115
  1044. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1851
  1045. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  1046. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -90
  1047. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  1048. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  1049. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -89
  1050. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  1051. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  1052. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  1053. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  1054. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  1055. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  1056. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  1057. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  1058. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  1059. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -265
  1060. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  1061. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  1062. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  1063. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  1064. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  1065. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  1066. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  1067. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  1068. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  1069. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  1070. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  1071. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  1072. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  1073. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  1074. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  1075. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  1076. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  1077. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  1078. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  1079. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  1080. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  1081. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  1082. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  1083. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  1084. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  1085. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  1086. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  1087. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  1088. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  1089. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  1090. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  1091. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  1092. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -170
  1093. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  1094. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  1095. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  1096. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  1097. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  1098. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  1099. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  1100. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  1101. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  1102. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  1103. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  1104. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  1105. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  1106. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -51
  1107. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -67
  1108. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  1109. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  1110. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  1111. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  1112. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  1113. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  1114. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  1115. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  1116. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  1117. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  1118. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  1119. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -253
  1120. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -68
  1121. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -200
  1122. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -200
  1123. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -105
  1124. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -55
  1125. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -446
  1126. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  1127. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  1128. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -561
  1129. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -104
  1130. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -225
  1131. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -86
  1132. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -62
  1133. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -44
  1134. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  1135. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  1136. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  1137. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  1138. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -33
  1139. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  1140. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  1141. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  1142. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  1143. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  1144. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  1145. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  1146. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  1147. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -44
  1148. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -107
  1149. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  1150. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  1151. data/ext/third_party/json/include/tao/json/external/pegtl/internal/always_false.hpp +0 -21
  1152. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  1153. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  1154. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -50
  1155. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  1156. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  1157. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -53
  1158. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -31
  1159. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  1160. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  1161. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  1162. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -36
  1163. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -44
  1164. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  1165. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  1166. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  1167. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  1168. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  1169. data/ext/third_party/json/include/tao/json/external/pegtl/internal/demangle.hpp +0 -140
  1170. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -44
  1171. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -33
  1172. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  1173. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  1174. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -44
  1175. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian.hpp +0 -62
  1176. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_gcc.hpp +0 -206
  1177. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_win.hpp +0 -106
  1178. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -31
  1179. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -31
  1180. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -32
  1181. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -83
  1182. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -219
  1183. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  1184. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -114
  1185. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -25
  1186. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -25
  1187. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -56
  1188. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  1189. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -53
  1190. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -48
  1191. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -19
  1192. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  1193. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  1194. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -40
  1195. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  1196. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -52
  1197. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  1198. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  1199. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  1200. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  1201. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -20
  1202. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  1203. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -82
  1204. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -25
  1205. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -23
  1206. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -72
  1207. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -53
  1208. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -44
  1209. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  1210. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  1211. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  1212. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  1213. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint.hpp +0 -54
  1214. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint8.hpp +0 -34
  1215. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint.hpp +0 -45
  1216. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint8.hpp +0 -33
  1217. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf16.hpp +0 -54
  1218. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf32.hpp +0 -43
  1219. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -90
  1220. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  1221. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -53
  1222. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -53
  1223. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -51
  1224. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -93
  1225. data/ext/third_party/json/include/tao/json/external/pegtl/internal/read_uint.hpp +0 -77
  1226. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -69
  1227. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -66
  1228. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  1229. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -79
  1230. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -46
  1231. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  1232. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  1233. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  1234. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -73
  1235. data/ext/third_party/json/include/tao/json/external/pegtl/internal/skip_control.hpp +0 -25
  1236. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -60
  1237. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -47
  1238. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  1239. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -49
  1240. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  1241. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  1242. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  1243. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -84
  1244. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -33
  1245. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -73
  1246. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -381
  1247. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  1248. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  1249. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -20
  1250. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -53
  1251. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -69
  1252. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -75
  1253. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -74
  1254. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  1255. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  1256. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  1257. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -67
  1258. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -66
  1259. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  1260. data/ext/third_party/json/include/tao/json/external/pegtl/uint16.hpp +0 -62
  1261. data/ext/third_party/json/include/tao/json/external/pegtl/uint32.hpp +0 -62
  1262. data/ext/third_party/json/include/tao/json/external/pegtl/uint64.hpp +0 -63
  1263. data/ext/third_party/json/include/tao/json/external/pegtl/uint8.hpp +0 -36
  1264. data/ext/third_party/json/include/tao/json/external/pegtl/utf16.hpp +0 -49
  1265. data/ext/third_party/json/include/tao/json/external/pegtl/utf32.hpp +0 -49
  1266. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  1267. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  1268. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -53
  1269. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  1270. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  1271. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  1272. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  1273. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  1274. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  1275. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  1276. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  1277. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  1278. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  1279. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  1280. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  1281. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  1282. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  1283. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -59
  1284. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  1285. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  1286. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  1287. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  1288. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  1289. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  1290. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  1291. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  1292. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  1293. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  1294. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -113
  1295. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  1296. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  1297. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  1298. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  1299. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  1300. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  1301. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  1302. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  1303. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  1304. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  1305. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  1306. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  1307. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  1308. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  1309. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  1310. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  1311. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  1312. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  1313. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  1314. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -256
  1315. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  1316. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  1317. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -263
  1318. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  1319. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  1320. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  1321. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  1322. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  1323. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  1324. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  1325. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  1326. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  1327. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  1328. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  1329. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  1330. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  1331. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  1332. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  1333. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -249
  1334. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  1335. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  1336. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  1337. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -18
  1338. data/ext/third_party/json/include/tao/json/operators.hpp +0 -494
  1339. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -306
  1340. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  1341. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  1342. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -143
  1343. data/ext/third_party/json/include/tao/json/span.hpp +0 -568
  1344. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  1345. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  1346. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  1347. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  1348. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  1349. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  1350. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  1351. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  1352. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  1353. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  1354. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  1355. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  1356. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  1357. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  1358. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  1359. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -413
  1360. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  1361. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  1362. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  1363. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  1364. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -18
  1365. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  1366. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  1367. data/ext/third_party/json/include/tao/json.hpp +0 -45
  1368. data/ext/third_party/snappy/.appveyor.yml +0 -36
  1369. data/ext/third_party/snappy/.gitignore +0 -8
  1370. data/ext/third_party/snappy/.travis.yml +0 -98
  1371. data/ext/third_party/snappy/AUTHORS +0 -1
  1372. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  1373. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  1374. data/ext/third_party/snappy/COPYING +0 -54
  1375. data/ext/third_party/snappy/NEWS +0 -188
  1376. data/ext/third_party/snappy/README.md +0 -148
  1377. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +0 -33
  1378. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  1379. data/ext/third_party/snappy/docs/README.md +0 -72
  1380. data/ext/third_party/snappy/format_description.txt +0 -110
  1381. data/ext/third_party/snappy/framing_format.txt +0 -135
  1382. data/ext/third_party/snappy/snappy-c.cc +0 -90
  1383. data/ext/third_party/snappy/snappy-c.h +0 -138
  1384. data/ext/third_party/snappy/snappy-internal.h +0 -315
  1385. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  1386. data/ext/third_party/snappy/snappy-sinksource.h +0 -182
  1387. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  1388. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  1389. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  1390. data/ext/third_party/snappy/snappy-test.cc +0 -613
  1391. data/ext/third_party/snappy/snappy-test.h +0 -526
  1392. data/ext/third_party/snappy/snappy.cc +0 -1770
  1393. data/ext/third_party/snappy/snappy.h +0 -209
  1394. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  1395. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  1396. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  1397. data/ext/third_party/spdlog/.clang-format +0 -108
  1398. data/ext/third_party/spdlog/.clang-tidy +0 -54
  1399. data/ext/third_party/spdlog/.gitattributes +0 -1
  1400. data/ext/third_party/spdlog/.gitignore +0 -83
  1401. data/ext/third_party/spdlog/.travis.yml +0 -112
  1402. data/ext/third_party/spdlog/CMakeLists.txt +0 -324
  1403. data/ext/third_party/spdlog/INSTALL +0 -24
  1404. data/ext/third_party/spdlog/LICENSE +0 -26
  1405. data/ext/third_party/spdlog/README.md +0 -423
  1406. data/ext/third_party/spdlog/appveyor.yml +0 -51
  1407. data/ext/third_party/spdlog/cmake/ide.cmake +0 -18
  1408. data/ext/third_party/spdlog/cmake/pch.h.in +0 -258
  1409. data/ext/third_party/spdlog/cmake/spdlog.pc.in +0 -13
  1410. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  1411. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  1412. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  1413. data/ext/third_party/spdlog/cmake/version.rc.in +0 -42
  1414. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  1415. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  1416. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  1417. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +0 -45
  1418. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +0 -36
  1419. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -103
  1420. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -28
  1421. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
  1422. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  1423. data/ext/third_party/spdlog/include/spdlog/common.h +0 -246
  1424. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  1425. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  1426. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +0 -141
  1427. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +0 -32
  1428. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  1429. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  1430. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -108
  1431. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  1432. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  1433. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  1434. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  1435. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  1436. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +0 -49
  1437. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  1438. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  1439. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  1440. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  1441. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -299
  1442. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -112
  1443. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  1444. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  1445. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -145
  1446. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  1447. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  1448. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  1449. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  1450. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +0 -27
  1451. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1119
  1452. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -568
  1453. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -595
  1454. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1789
  1455. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1403
  1456. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3648
  1457. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  1458. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -143
  1459. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  1460. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -721
  1461. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -387
  1462. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -25
  1463. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  1464. data/ext/third_party/spdlog/include/spdlog/formatter.h +0 -18
  1465. data/ext/third_party/spdlog/include/spdlog/fwd.h +0 -14
  1466. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -253
  1467. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -392
  1468. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1358
  1469. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  1470. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  1471. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  1472. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  1473. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  1474. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  1475. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  1476. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  1477. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  1478. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +0 -97
  1479. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  1480. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  1481. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +0 -44
  1482. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +0 -50
  1483. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -72
  1484. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  1485. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  1486. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  1487. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  1488. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  1489. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  1490. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -94
  1491. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -80
  1492. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +0 -109
  1493. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  1494. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  1495. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  1496. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -180
  1497. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  1498. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -115
  1499. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -340
  1500. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  1501. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  1502. data/ext/third_party/spdlog/src/async.cpp +0 -13
  1503. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  1504. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  1505. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  1506. data/ext/third_party/spdlog/src/fmt.cpp +0 -189
  1507. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  1508. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
  1509. data/lib/couchbase/libcouchbase.so +0 -0
  1510. data/rbi/couchbase.rbi +0 -79
@@ -1,1789 +0,0 @@
1
- // Formatting library for C++ - the core API
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 <cstdio> // std::FILE
12
- #include <cstring>
13
- #include <functional>
14
- #include <iterator>
15
- #include <memory>
16
- #include <string>
17
- #include <type_traits>
18
- #include <vector>
19
-
20
- // The fmt library version in the form major * 10000 + minor * 100 + patch.
21
- #define FMT_VERSION 60200
22
-
23
- #ifdef __has_feature
24
- # define FMT_HAS_FEATURE(x) __has_feature(x)
25
- #else
26
- # define FMT_HAS_FEATURE(x) 0
27
- #endif
28
-
29
- #if defined(__has_include) && !defined(__INTELLISENSE__) && \
30
- !(defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1600)
31
- # define FMT_HAS_INCLUDE(x) __has_include(x)
32
- #else
33
- # define FMT_HAS_INCLUDE(x) 0
34
- #endif
35
-
36
- #ifdef __has_cpp_attribute
37
- # define FMT_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x)
38
- #else
39
- # define FMT_HAS_CPP_ATTRIBUTE(x) 0
40
- #endif
41
-
42
- #define FMT_HAS_CPP14_ATTRIBUTE(attribute) \
43
- (__cplusplus >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))
44
-
45
- #define FMT_HAS_CPP17_ATTRIBUTE(attribute) \
46
- (__cplusplus >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute))
47
-
48
- #ifdef __clang__
49
- # define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__)
50
- #else
51
- # define FMT_CLANG_VERSION 0
52
- #endif
53
-
54
- #if defined(__GNUC__) && !defined(__clang__)
55
- # define FMT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
56
- #else
57
- # define FMT_GCC_VERSION 0
58
- #endif
59
-
60
- #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
61
- # define FMT_HAS_GXX_CXX11 FMT_GCC_VERSION
62
- #else
63
- # define FMT_HAS_GXX_CXX11 0
64
- #endif
65
-
66
- #ifdef __NVCC__
67
- # define FMT_NVCC __NVCC__
68
- #else
69
- # define FMT_NVCC 0
70
- #endif
71
-
72
- #ifdef _MSC_VER
73
- # define FMT_MSC_VER _MSC_VER
74
- #else
75
- # define FMT_MSC_VER 0
76
- #endif
77
-
78
- // Check if relaxed C++14 constexpr is supported.
79
- // GCC doesn't allow throw in constexpr until version 6 (bug 67371).
80
- #ifndef FMT_USE_CONSTEXPR
81
- # define FMT_USE_CONSTEXPR \
82
- (FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1910 || \
83
- (FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) && \
84
- !FMT_NVCC
85
- #endif
86
- #if FMT_USE_CONSTEXPR
87
- # define FMT_CONSTEXPR constexpr
88
- # define FMT_CONSTEXPR_DECL constexpr
89
- #else
90
- # define FMT_CONSTEXPR inline
91
- # define FMT_CONSTEXPR_DECL
92
- #endif
93
-
94
- #ifndef FMT_OVERRIDE
95
- # if FMT_HAS_FEATURE(cxx_override) || \
96
- (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900
97
- # define FMT_OVERRIDE override
98
- # else
99
- # define FMT_OVERRIDE
100
- # endif
101
- #endif
102
-
103
- // Check if exceptions are disabled.
104
- #ifndef FMT_EXCEPTIONS
105
- # if (defined(__GNUC__) && !defined(__EXCEPTIONS)) || \
106
- FMT_MSC_VER && !_HAS_EXCEPTIONS
107
- # define FMT_EXCEPTIONS 0
108
- # else
109
- # define FMT_EXCEPTIONS 1
110
- # endif
111
- #endif
112
-
113
- // Define FMT_USE_NOEXCEPT to make fmt use noexcept (C++11 feature).
114
- #ifndef FMT_USE_NOEXCEPT
115
- # define FMT_USE_NOEXCEPT 0
116
- #endif
117
-
118
- #if FMT_USE_NOEXCEPT || FMT_HAS_FEATURE(cxx_noexcept) || \
119
- (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900
120
- # define FMT_DETECTED_NOEXCEPT noexcept
121
- # define FMT_HAS_CXX11_NOEXCEPT 1
122
- #else
123
- # define FMT_DETECTED_NOEXCEPT throw()
124
- # define FMT_HAS_CXX11_NOEXCEPT 0
125
- #endif
126
-
127
- #ifndef FMT_NOEXCEPT
128
- # if FMT_EXCEPTIONS || FMT_HAS_CXX11_NOEXCEPT
129
- # define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT
130
- # else
131
- # define FMT_NOEXCEPT
132
- # endif
133
- #endif
134
-
135
- // [[noreturn]] is disabled on MSVC and NVCC because of bogus unreachable code
136
- // warnings.
137
- #if FMT_EXCEPTIONS && FMT_HAS_CPP_ATTRIBUTE(noreturn) && !FMT_MSC_VER && \
138
- !FMT_NVCC
139
- # define FMT_NORETURN [[noreturn]]
140
- #else
141
- # define FMT_NORETURN
142
- #endif
143
-
144
- #ifndef FMT_MAYBE_UNUSED
145
- # if FMT_HAS_CPP17_ATTRIBUTE(maybe_unused)
146
- # define FMT_MAYBE_UNUSED [[maybe_unused]]
147
- # else
148
- # define FMT_MAYBE_UNUSED
149
- # endif
150
- #endif
151
-
152
- #ifndef FMT_DEPRECATED
153
- # if FMT_HAS_CPP14_ATTRIBUTE(deprecated) || FMT_MSC_VER >= 1900
154
- # define FMT_DEPRECATED [[deprecated]]
155
- # else
156
- # if defined(__GNUC__) || defined(__clang__)
157
- # define FMT_DEPRECATED __attribute__((deprecated))
158
- # elif FMT_MSC_VER
159
- # define FMT_DEPRECATED __declspec(deprecated)
160
- # else
161
- # define FMT_DEPRECATED /* deprecated */
162
- # endif
163
- # endif
164
- #endif
165
-
166
- // Workaround broken [[deprecated]] in the Intel, PGI and NVCC compilers.
167
- #if defined(__INTEL_COMPILER) || defined(__PGI) || FMT_NVCC
168
- # define FMT_DEPRECATED_ALIAS
169
- #else
170
- # define FMT_DEPRECATED_ALIAS FMT_DEPRECATED
171
- #endif
172
-
173
- #ifndef FMT_BEGIN_NAMESPACE
174
- # if FMT_HAS_FEATURE(cxx_inline_namespaces) || FMT_GCC_VERSION >= 404 || \
175
- FMT_MSC_VER >= 1900
176
- # define FMT_INLINE_NAMESPACE inline namespace
177
- # define FMT_END_NAMESPACE \
178
- } \
179
- }
180
- # else
181
- # define FMT_INLINE_NAMESPACE namespace
182
- # define FMT_END_NAMESPACE \
183
- } \
184
- using namespace v6; \
185
- }
186
- # endif
187
- # define FMT_BEGIN_NAMESPACE \
188
- namespace fmt { \
189
- FMT_INLINE_NAMESPACE v6 {
190
- #endif
191
-
192
- #if !defined(FMT_HEADER_ONLY) && defined(_WIN32)
193
- # if FMT_MSC_VER
194
- # define FMT_NO_W4275 __pragma(warning(suppress : 4275))
195
- # else
196
- # define FMT_NO_W4275
197
- # endif
198
- # define FMT_CLASS_API FMT_NO_W4275
199
- # ifdef FMT_EXPORT
200
- # define FMT_API __declspec(dllexport)
201
- # elif defined(FMT_SHARED)
202
- # define FMT_API __declspec(dllimport)
203
- # define FMT_EXTERN_TEMPLATE_API FMT_API
204
- # endif
205
- #endif
206
- #ifndef FMT_CLASS_API
207
- # define FMT_CLASS_API
208
- #endif
209
- #ifndef FMT_API
210
- # if FMT_GCC_VERSION || FMT_CLANG_VERSION
211
- # define FMT_API __attribute__((visibility("default")))
212
- # define FMT_EXTERN_TEMPLATE_API FMT_API
213
- # define FMT_INSTANTIATION_DEF_API
214
- # else
215
- # define FMT_API
216
- # endif
217
- #endif
218
- #ifndef FMT_EXTERN_TEMPLATE_API
219
- # define FMT_EXTERN_TEMPLATE_API
220
- #endif
221
- #ifndef FMT_INSTANTIATION_DEF_API
222
- # define FMT_INSTANTIATION_DEF_API FMT_API
223
- #endif
224
-
225
- #ifndef FMT_HEADER_ONLY
226
- # define FMT_EXTERN extern
227
- #else
228
- # define FMT_EXTERN
229
- #endif
230
-
231
- // libc++ supports string_view in pre-c++17.
232
- #if (FMT_HAS_INCLUDE(<string_view>) && \
233
- (__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \
234
- (defined(_MSVC_LANG) && _MSVC_LANG > 201402L && _MSC_VER >= 1910)
235
- # include <string_view>
236
- # define FMT_USE_STRING_VIEW
237
- #elif FMT_HAS_INCLUDE("experimental/string_view") && __cplusplus >= 201402L
238
- # include <experimental/string_view>
239
- # define FMT_USE_EXPERIMENTAL_STRING_VIEW
240
- #endif
241
-
242
- #ifndef FMT_UNICODE
243
- # define FMT_UNICODE !FMT_MSC_VER
244
- #endif
245
- #if FMT_UNICODE && FMT_MSC_VER
246
- # pragma execution_character_set("utf-8")
247
- #endif
248
-
249
- FMT_BEGIN_NAMESPACE
250
-
251
- // Implementations of enable_if_t and other metafunctions for older systems.
252
- template <bool B, class T = void>
253
- using enable_if_t = typename std::enable_if<B, T>::type;
254
- template <bool B, class T, class F>
255
- using conditional_t = typename std::conditional<B, T, F>::type;
256
- template <bool B> using bool_constant = std::integral_constant<bool, B>;
257
- template <typename T>
258
- using remove_reference_t = typename std::remove_reference<T>::type;
259
- template <typename T>
260
- using remove_const_t = typename std::remove_const<T>::type;
261
- template <typename T>
262
- using remove_cvref_t = typename std::remove_cv<remove_reference_t<T>>::type;
263
- template <typename T> struct type_identity { using type = T; };
264
- template <typename T> using type_identity_t = typename type_identity<T>::type;
265
-
266
- struct monostate {};
267
-
268
- // An enable_if helper to be used in template parameters which results in much
269
- // shorter symbols: https://godbolt.org/z/sWw4vP. Extra parentheses are needed
270
- // to workaround a bug in MSVC 2019 (see #1140 and #1186).
271
- #define FMT_ENABLE_IF(...) enable_if_t<(__VA_ARGS__), int> = 0
272
-
273
- namespace internal {
274
-
275
- // A helper function to suppress bogus "conditional expression is constant"
276
- // warnings.
277
- template <typename T> FMT_CONSTEXPR T const_check(T value) { return value; }
278
-
279
- // A workaround for gcc 4.8 to make void_t work in a SFINAE context.
280
- template <typename... Ts> struct void_t_impl { using type = void; };
281
-
282
- FMT_NORETURN FMT_API void assert_fail(const char* file, int line,
283
- const char* message);
284
-
285
- #ifndef FMT_ASSERT
286
- # ifdef NDEBUG
287
- // FMT_ASSERT is not empty to avoid -Werror=empty-body.
288
- # define FMT_ASSERT(condition, message) ((void)0)
289
- # else
290
- # define FMT_ASSERT(condition, message) \
291
- ((condition) /* void() fails with -Winvalid-constexpr on clang 4.0.1 */ \
292
- ? (void)0 \
293
- : ::fmt::internal::assert_fail(__FILE__, __LINE__, (message)))
294
- # endif
295
- #endif
296
-
297
- #if defined(FMT_USE_STRING_VIEW)
298
- template <typename Char> using std_string_view = std::basic_string_view<Char>;
299
- #elif defined(FMT_USE_EXPERIMENTAL_STRING_VIEW)
300
- template <typename Char>
301
- using std_string_view = std::experimental::basic_string_view<Char>;
302
- #else
303
- template <typename T> struct std_string_view {};
304
- #endif
305
-
306
- #ifdef FMT_USE_INT128
307
- // Do nothing.
308
- #elif defined(__SIZEOF_INT128__) && !FMT_NVCC
309
- # define FMT_USE_INT128 1
310
- using int128_t = __int128_t;
311
- using uint128_t = __uint128_t;
312
- #else
313
- # define FMT_USE_INT128 0
314
- #endif
315
- #if !FMT_USE_INT128
316
- struct int128_t {};
317
- struct uint128_t {};
318
- #endif
319
-
320
- // Casts a nonnegative integer to unsigned.
321
- template <typename Int>
322
- FMT_CONSTEXPR typename std::make_unsigned<Int>::type to_unsigned(Int value) {
323
- FMT_ASSERT(value >= 0, "negative value");
324
- return static_cast<typename std::make_unsigned<Int>::type>(value);
325
- }
326
-
327
- constexpr unsigned char micro[] = "\u00B5";
328
-
329
- template <typename Char> constexpr bool is_unicode() {
330
- return FMT_UNICODE || sizeof(Char) != 1 ||
331
- (sizeof(micro) == 3 && micro[0] == 0xC2 && micro[1] == 0xB5);
332
- }
333
-
334
- #ifdef __cpp_char8_t
335
- using char8_type = char8_t;
336
- #else
337
- enum char8_type : unsigned char {};
338
- #endif
339
- } // namespace internal
340
-
341
- template <typename... Ts>
342
- using void_t = typename internal::void_t_impl<Ts...>::type;
343
-
344
- /**
345
- An implementation of ``std::basic_string_view`` for pre-C++17. It provides a
346
- subset of the API. ``fmt::basic_string_view`` is used for format strings even
347
- if ``std::string_view`` is available to prevent issues when a library is
348
- compiled with a different ``-std`` option than the client code (which is not
349
- recommended).
350
- */
351
- template <typename Char> class basic_string_view {
352
- private:
353
- const Char* data_;
354
- size_t size_;
355
-
356
- public:
357
- using char_type FMT_DEPRECATED_ALIAS = Char;
358
- using value_type = Char;
359
- using iterator = const Char*;
360
-
361
- FMT_CONSTEXPR basic_string_view() FMT_NOEXCEPT : data_(nullptr), size_(0) {}
362
-
363
- /** Constructs a string reference object from a C string and a size. */
364
- FMT_CONSTEXPR basic_string_view(const Char* s, size_t count) FMT_NOEXCEPT
365
- : data_(s),
366
- size_(count) {}
367
-
368
- /**
369
- \rst
370
- Constructs a string reference object from a C string computing
371
- the size with ``std::char_traits<Char>::length``.
372
- \endrst
373
- */
374
- #if __cplusplus >= 201703L // C++17's char_traits::length() is constexpr.
375
- FMT_CONSTEXPR
376
- #endif
377
- basic_string_view(const Char* s)
378
- : data_(s), size_(std::char_traits<Char>::length(s)) {}
379
-
380
- /** Constructs a string reference from a ``std::basic_string`` object. */
381
- template <typename Traits, typename Alloc>
382
- FMT_CONSTEXPR basic_string_view(
383
- const std::basic_string<Char, Traits, Alloc>& s) FMT_NOEXCEPT
384
- : data_(s.data()),
385
- size_(s.size()) {}
386
-
387
- template <
388
- typename S,
389
- FMT_ENABLE_IF(std::is_same<S, internal::std_string_view<Char>>::value)>
390
- FMT_CONSTEXPR basic_string_view(S s) FMT_NOEXCEPT : data_(s.data()),
391
- size_(s.size()) {}
392
-
393
- /** Returns a pointer to the string data. */
394
- FMT_CONSTEXPR const Char* data() const { return data_; }
395
-
396
- /** Returns the string size. */
397
- FMT_CONSTEXPR size_t size() const { return size_; }
398
-
399
- FMT_CONSTEXPR iterator begin() const { return data_; }
400
- FMT_CONSTEXPR iterator end() const { return data_ + size_; }
401
-
402
- FMT_CONSTEXPR const Char& operator[](size_t pos) const { return data_[pos]; }
403
-
404
- FMT_CONSTEXPR void remove_prefix(size_t n) {
405
- data_ += n;
406
- size_ -= n;
407
- }
408
-
409
- // Lexicographically compare this string reference to other.
410
- int compare(basic_string_view other) const {
411
- size_t str_size = size_ < other.size_ ? size_ : other.size_;
412
- int result = std::char_traits<Char>::compare(data_, other.data_, str_size);
413
- if (result == 0)
414
- result = size_ == other.size_ ? 0 : (size_ < other.size_ ? -1 : 1);
415
- return result;
416
- }
417
-
418
- friend bool operator==(basic_string_view lhs, basic_string_view rhs) {
419
- return lhs.compare(rhs) == 0;
420
- }
421
- friend bool operator!=(basic_string_view lhs, basic_string_view rhs) {
422
- return lhs.compare(rhs) != 0;
423
- }
424
- friend bool operator<(basic_string_view lhs, basic_string_view rhs) {
425
- return lhs.compare(rhs) < 0;
426
- }
427
- friend bool operator<=(basic_string_view lhs, basic_string_view rhs) {
428
- return lhs.compare(rhs) <= 0;
429
- }
430
- friend bool operator>(basic_string_view lhs, basic_string_view rhs) {
431
- return lhs.compare(rhs) > 0;
432
- }
433
- friend bool operator>=(basic_string_view lhs, basic_string_view rhs) {
434
- return lhs.compare(rhs) >= 0;
435
- }
436
- };
437
-
438
- using string_view = basic_string_view<char>;
439
- using wstring_view = basic_string_view<wchar_t>;
440
-
441
- #ifndef __cpp_char8_t
442
- // char8_t is deprecated; use char instead.
443
- using char8_t FMT_DEPRECATED_ALIAS = internal::char8_type;
444
- #endif
445
-
446
- /** Specifies if ``T`` is a character type. Can be specialized by users. */
447
- template <typename T> struct is_char : std::false_type {};
448
- template <> struct is_char<char> : std::true_type {};
449
- template <> struct is_char<wchar_t> : std::true_type {};
450
- template <> struct is_char<internal::char8_type> : std::true_type {};
451
- template <> struct is_char<char16_t> : std::true_type {};
452
- template <> struct is_char<char32_t> : std::true_type {};
453
-
454
- /**
455
- \rst
456
- Returns a string view of `s`. In order to add custom string type support to
457
- {fmt} provide an overload of `to_string_view` for it in the same namespace as
458
- the type for the argument-dependent lookup to work.
459
-
460
- **Example**::
461
-
462
- namespace my_ns {
463
- inline string_view to_string_view(const my_string& s) {
464
- return {s.data(), s.length()};
465
- }
466
- }
467
- std::string message = fmt::format(my_string("The answer is {}"), 42);
468
- \endrst
469
- */
470
- template <typename Char, FMT_ENABLE_IF(is_char<Char>::value)>
471
- inline basic_string_view<Char> to_string_view(const Char* s) {
472
- return s;
473
- }
474
-
475
- template <typename Char, typename Traits, typename Alloc>
476
- inline basic_string_view<Char> to_string_view(
477
- const std::basic_string<Char, Traits, Alloc>& s) {
478
- return s;
479
- }
480
-
481
- template <typename Char>
482
- inline basic_string_view<Char> to_string_view(basic_string_view<Char> s) {
483
- return s;
484
- }
485
-
486
- template <typename Char,
487
- FMT_ENABLE_IF(!std::is_empty<internal::std_string_view<Char>>::value)>
488
- inline basic_string_view<Char> to_string_view(
489
- internal::std_string_view<Char> s) {
490
- return s;
491
- }
492
-
493
- // A base class for compile-time strings. It is defined in the fmt namespace to
494
- // make formatting functions visible via ADL, e.g. format(fmt("{}"), 42).
495
- struct compile_string {};
496
-
497
- template <typename S>
498
- struct is_compile_string : std::is_base_of<compile_string, S> {};
499
-
500
- template <typename S, FMT_ENABLE_IF(is_compile_string<S>::value)>
501
- constexpr basic_string_view<typename S::char_type> to_string_view(const S& s) {
502
- return s;
503
- }
504
-
505
- namespace internal {
506
- void to_string_view(...);
507
- using fmt::v6::to_string_view;
508
-
509
- // Specifies whether S is a string type convertible to fmt::basic_string_view.
510
- // It should be a constexpr function but MSVC 2017 fails to compile it in
511
- // enable_if and MSVC 2015 fails to compile it as an alias template.
512
- template <typename S>
513
- struct is_string : std::is_class<decltype(to_string_view(std::declval<S>()))> {
514
- };
515
-
516
- template <typename S, typename = void> struct char_t_impl {};
517
- template <typename S> struct char_t_impl<S, enable_if_t<is_string<S>::value>> {
518
- using result = decltype(to_string_view(std::declval<S>()));
519
- using type = typename result::value_type;
520
- };
521
-
522
- struct error_handler {
523
- FMT_CONSTEXPR error_handler() = default;
524
- FMT_CONSTEXPR error_handler(const error_handler&) = default;
525
-
526
- // This function is intentionally not constexpr to give a compile-time error.
527
- FMT_NORETURN FMT_API void on_error(const char* message);
528
- };
529
- } // namespace internal
530
-
531
- /** String's character type. */
532
- template <typename S> using char_t = typename internal::char_t_impl<S>::type;
533
-
534
- /**
535
- \rst
536
- Parsing context consisting of a format string range being parsed and an
537
- argument counter for automatic indexing.
538
-
539
- You can use one of the following type aliases for common character types:
540
-
541
- +-----------------------+-------------------------------------+
542
- | Type | Definition |
543
- +=======================+=====================================+
544
- | format_parse_context | basic_format_parse_context<char> |
545
- +-----------------------+-------------------------------------+
546
- | wformat_parse_context | basic_format_parse_context<wchar_t> |
547
- +-----------------------+-------------------------------------+
548
- \endrst
549
- */
550
- template <typename Char, typename ErrorHandler = internal::error_handler>
551
- class basic_format_parse_context : private ErrorHandler {
552
- private:
553
- basic_string_view<Char> format_str_;
554
- int next_arg_id_;
555
-
556
- public:
557
- using char_type = Char;
558
- using iterator = typename basic_string_view<Char>::iterator;
559
-
560
- explicit FMT_CONSTEXPR basic_format_parse_context(
561
- basic_string_view<Char> format_str, ErrorHandler eh = ErrorHandler())
562
- : ErrorHandler(eh), format_str_(format_str), next_arg_id_(0) {}
563
-
564
- /**
565
- Returns an iterator to the beginning of the format string range being
566
- parsed.
567
- */
568
- FMT_CONSTEXPR iterator begin() const FMT_NOEXCEPT {
569
- return format_str_.begin();
570
- }
571
-
572
- /**
573
- Returns an iterator past the end of the format string range being parsed.
574
- */
575
- FMT_CONSTEXPR iterator end() const FMT_NOEXCEPT { return format_str_.end(); }
576
-
577
- /** Advances the begin iterator to ``it``. */
578
- FMT_CONSTEXPR void advance_to(iterator it) {
579
- format_str_.remove_prefix(internal::to_unsigned(it - begin()));
580
- }
581
-
582
- /**
583
- Reports an error if using the manual argument indexing; otherwise returns
584
- the next argument index and switches to the automatic indexing.
585
- */
586
- FMT_CONSTEXPR int next_arg_id() {
587
- if (next_arg_id_ >= 0) return next_arg_id_++;
588
- on_error("cannot switch from manual to automatic argument indexing");
589
- return 0;
590
- }
591
-
592
- /**
593
- Reports an error if using the automatic argument indexing; otherwise
594
- switches to the manual indexing.
595
- */
596
- FMT_CONSTEXPR void check_arg_id(int) {
597
- if (next_arg_id_ > 0)
598
- on_error("cannot switch from automatic to manual argument indexing");
599
- else
600
- next_arg_id_ = -1;
601
- }
602
-
603
- FMT_CONSTEXPR void check_arg_id(basic_string_view<Char>) {}
604
-
605
- FMT_CONSTEXPR void on_error(const char* message) {
606
- ErrorHandler::on_error(message);
607
- }
608
-
609
- FMT_CONSTEXPR ErrorHandler error_handler() const { return *this; }
610
- };
611
-
612
- using format_parse_context = basic_format_parse_context<char>;
613
- using wformat_parse_context = basic_format_parse_context<wchar_t>;
614
-
615
- template <typename Char, typename ErrorHandler = internal::error_handler>
616
- using basic_parse_context FMT_DEPRECATED_ALIAS =
617
- basic_format_parse_context<Char, ErrorHandler>;
618
- using parse_context FMT_DEPRECATED_ALIAS = basic_format_parse_context<char>;
619
- using wparse_context FMT_DEPRECATED_ALIAS = basic_format_parse_context<wchar_t>;
620
-
621
- template <typename Context> class basic_format_arg;
622
- template <typename Context> class basic_format_args;
623
-
624
- // A formatter for objects of type T.
625
- template <typename T, typename Char = char, typename Enable = void>
626
- struct formatter {
627
- // A deleted default constructor indicates a disabled formatter.
628
- formatter() = delete;
629
- };
630
-
631
- template <typename T, typename Char, typename Enable = void>
632
- struct FMT_DEPRECATED convert_to_int
633
- : bool_constant<!std::is_arithmetic<T>::value &&
634
- std::is_convertible<T, int>::value> {};
635
-
636
- // Specifies if T has an enabled formatter specialization. A type can be
637
- // formattable even if it doesn't have a formatter e.g. via a conversion.
638
- template <typename T, typename Context>
639
- using has_formatter =
640
- std::is_constructible<typename Context::template formatter_type<T>>;
641
-
642
- namespace internal {
643
-
644
- /** A contiguous memory buffer with an optional growing ability. */
645
- template <typename T> class buffer {
646
- private:
647
- T* ptr_;
648
- std::size_t size_;
649
- std::size_t capacity_;
650
-
651
- protected:
652
- // Don't initialize ptr_ since it is not accessed to save a few cycles.
653
- buffer(std::size_t sz) FMT_NOEXCEPT : size_(sz), capacity_(sz) {}
654
-
655
- buffer(T* p = nullptr, std::size_t sz = 0, std::size_t cap = 0) FMT_NOEXCEPT
656
- : ptr_(p),
657
- size_(sz),
658
- capacity_(cap) {}
659
-
660
- /** Sets the buffer data and capacity. */
661
- void set(T* buf_data, std::size_t buf_capacity) FMT_NOEXCEPT {
662
- ptr_ = buf_data;
663
- capacity_ = buf_capacity;
664
- }
665
-
666
- /** Increases the buffer capacity to hold at least *capacity* elements. */
667
- virtual void grow(std::size_t capacity) = 0;
668
-
669
- public:
670
- using value_type = T;
671
- using const_reference = const T&;
672
-
673
- buffer(const buffer&) = delete;
674
- void operator=(const buffer&) = delete;
675
- virtual ~buffer() = default;
676
-
677
- T* begin() FMT_NOEXCEPT { return ptr_; }
678
- T* end() FMT_NOEXCEPT { return ptr_ + size_; }
679
-
680
- const T* begin() const FMT_NOEXCEPT { return ptr_; }
681
- const T* end() const FMT_NOEXCEPT { return ptr_ + size_; }
682
-
683
- /** Returns the size of this buffer. */
684
- std::size_t size() const FMT_NOEXCEPT { return size_; }
685
-
686
- /** Returns the capacity of this buffer. */
687
- std::size_t capacity() const FMT_NOEXCEPT { return capacity_; }
688
-
689
- /** Returns a pointer to the buffer data. */
690
- T* data() FMT_NOEXCEPT { return ptr_; }
691
-
692
- /** Returns a pointer to the buffer data. */
693
- const T* data() const FMT_NOEXCEPT { return ptr_; }
694
-
695
- /**
696
- Resizes the buffer. If T is a POD type new elements may not be initialized.
697
- */
698
- void resize(std::size_t new_size) {
699
- reserve(new_size);
700
- size_ = new_size;
701
- }
702
-
703
- /** Clears this buffer. */
704
- void clear() { size_ = 0; }
705
-
706
- /** Reserves space to store at least *capacity* elements. */
707
- void reserve(std::size_t new_capacity) {
708
- if (new_capacity > capacity_) grow(new_capacity);
709
- }
710
-
711
- void push_back(const T& value) {
712
- reserve(size_ + 1);
713
- ptr_[size_++] = value;
714
- }
715
-
716
- /** Appends data to the end of the buffer. */
717
- template <typename U> void append(const U* begin, const U* end);
718
-
719
- template <typename I> T& operator[](I index) { return ptr_[index]; }
720
- template <typename I> const T& operator[](I index) const {
721
- return ptr_[index];
722
- }
723
- };
724
-
725
- // A container-backed buffer.
726
- template <typename Container>
727
- class container_buffer : public buffer<typename Container::value_type> {
728
- private:
729
- Container& container_;
730
-
731
- protected:
732
- void grow(std::size_t capacity) FMT_OVERRIDE {
733
- container_.resize(capacity);
734
- this->set(&container_[0], capacity);
735
- }
736
-
737
- public:
738
- explicit container_buffer(Container& c)
739
- : buffer<typename Container::value_type>(c.size()), container_(c) {}
740
- };
741
-
742
- // Extracts a reference to the container from back_insert_iterator.
743
- template <typename Container>
744
- inline Container& get_container(std::back_insert_iterator<Container> it) {
745
- using bi_iterator = std::back_insert_iterator<Container>;
746
- struct accessor : bi_iterator {
747
- accessor(bi_iterator iter) : bi_iterator(iter) {}
748
- using bi_iterator::container;
749
- };
750
- return *accessor(it).container;
751
- }
752
-
753
- template <typename T, typename Char = char, typename Enable = void>
754
- struct fallback_formatter {
755
- fallback_formatter() = delete;
756
- };
757
-
758
- // Specifies if T has an enabled fallback_formatter specialization.
759
- template <typename T, typename Context>
760
- using has_fallback_formatter =
761
- std::is_constructible<fallback_formatter<T, typename Context::char_type>>;
762
-
763
- template <typename Char> struct named_arg_base;
764
- template <typename T, typename Char> struct named_arg;
765
-
766
- enum class type {
767
- none_type,
768
- named_arg_type,
769
- // Integer types should go first,
770
- int_type,
771
- uint_type,
772
- long_long_type,
773
- ulong_long_type,
774
- int128_type,
775
- uint128_type,
776
- bool_type,
777
- char_type,
778
- last_integer_type = char_type,
779
- // followed by floating-point types.
780
- float_type,
781
- double_type,
782
- long_double_type,
783
- last_numeric_type = long_double_type,
784
- cstring_type,
785
- string_type,
786
- pointer_type,
787
- custom_type
788
- };
789
-
790
- // Maps core type T to the corresponding type enum constant.
791
- template <typename T, typename Char>
792
- struct type_constant : std::integral_constant<type, type::custom_type> {};
793
-
794
- #define FMT_TYPE_CONSTANT(Type, constant) \
795
- template <typename Char> \
796
- struct type_constant<Type, Char> \
797
- : std::integral_constant<type, type::constant> {}
798
-
799
- FMT_TYPE_CONSTANT(const named_arg_base<Char>&, named_arg_type);
800
- FMT_TYPE_CONSTANT(int, int_type);
801
- FMT_TYPE_CONSTANT(unsigned, uint_type);
802
- FMT_TYPE_CONSTANT(long long, long_long_type);
803
- FMT_TYPE_CONSTANT(unsigned long long, ulong_long_type);
804
- FMT_TYPE_CONSTANT(int128_t, int128_type);
805
- FMT_TYPE_CONSTANT(uint128_t, uint128_type);
806
- FMT_TYPE_CONSTANT(bool, bool_type);
807
- FMT_TYPE_CONSTANT(Char, char_type);
808
- FMT_TYPE_CONSTANT(float, float_type);
809
- FMT_TYPE_CONSTANT(double, double_type);
810
- FMT_TYPE_CONSTANT(long double, long_double_type);
811
- FMT_TYPE_CONSTANT(const Char*, cstring_type);
812
- FMT_TYPE_CONSTANT(basic_string_view<Char>, string_type);
813
- FMT_TYPE_CONSTANT(const void*, pointer_type);
814
-
815
- FMT_CONSTEXPR bool is_integral_type(type t) {
816
- FMT_ASSERT(t != type::named_arg_type, "invalid argument type");
817
- return t > type::none_type && t <= type::last_integer_type;
818
- }
819
-
820
- FMT_CONSTEXPR bool is_arithmetic_type(type t) {
821
- FMT_ASSERT(t != type::named_arg_type, "invalid argument type");
822
- return t > type::none_type && t <= type::last_numeric_type;
823
- }
824
-
825
- template <typename Char> struct string_value {
826
- const Char* data;
827
- std::size_t size;
828
- };
829
-
830
- template <typename Context> struct custom_value {
831
- using parse_context = basic_format_parse_context<typename Context::char_type>;
832
- const void* value;
833
- void (*format)(const void* arg, parse_context& parse_ctx, Context& ctx);
834
- };
835
-
836
- // A formatting argument value.
837
- template <typename Context> class value {
838
- public:
839
- using char_type = typename Context::char_type;
840
-
841
- union {
842
- int int_value;
843
- unsigned uint_value;
844
- long long long_long_value;
845
- unsigned long long ulong_long_value;
846
- int128_t int128_value;
847
- uint128_t uint128_value;
848
- bool bool_value;
849
- char_type char_value;
850
- float float_value;
851
- double double_value;
852
- long double long_double_value;
853
- const void* pointer;
854
- string_value<char_type> string;
855
- custom_value<Context> custom;
856
- const named_arg_base<char_type>* named_arg;
857
- };
858
-
859
- FMT_CONSTEXPR value(int val = 0) : int_value(val) {}
860
- FMT_CONSTEXPR value(unsigned val) : uint_value(val) {}
861
- value(long long val) : long_long_value(val) {}
862
- value(unsigned long long val) : ulong_long_value(val) {}
863
- value(int128_t val) : int128_value(val) {}
864
- value(uint128_t val) : uint128_value(val) {}
865
- value(float val) : float_value(val) {}
866
- value(double val) : double_value(val) {}
867
- value(long double val) : long_double_value(val) {}
868
- value(bool val) : bool_value(val) {}
869
- value(char_type val) : char_value(val) {}
870
- value(const char_type* val) { string.data = val; }
871
- value(basic_string_view<char_type> val) {
872
- string.data = val.data();
873
- string.size = val.size();
874
- }
875
- value(const void* val) : pointer(val) {}
876
-
877
- template <typename T> value(const T& val) {
878
- custom.value = &val;
879
- // Get the formatter type through the context to allow different contexts
880
- // have different extension points, e.g. `formatter<T>` for `format` and
881
- // `printf_formatter<T>` for `printf`.
882
- custom.format = format_custom_arg<
883
- T, conditional_t<has_formatter<T, Context>::value,
884
- typename Context::template formatter_type<T>,
885
- fallback_formatter<T, char_type>>>;
886
- }
887
-
888
- value(const named_arg_base<char_type>& val) { named_arg = &val; }
889
-
890
- private:
891
- // Formats an argument of a custom type, such as a user-defined class.
892
- template <typename T, typename Formatter>
893
- static void format_custom_arg(
894
- const void* arg, basic_format_parse_context<char_type>& parse_ctx,
895
- Context& ctx) {
896
- Formatter f;
897
- parse_ctx.advance_to(f.parse(parse_ctx));
898
- ctx.advance_to(f.format(*static_cast<const T*>(arg), ctx));
899
- }
900
- };
901
-
902
- template <typename Context, typename T>
903
- FMT_CONSTEXPR basic_format_arg<Context> make_arg(const T& value);
904
-
905
- // To minimize the number of types we need to deal with, long is translated
906
- // either to int or to long long depending on its size.
907
- enum { long_short = sizeof(long) == sizeof(int) };
908
- using long_type = conditional_t<long_short, int, long long>;
909
- using ulong_type = conditional_t<long_short, unsigned, unsigned long long>;
910
-
911
- // Maps formatting arguments to core types.
912
- template <typename Context> struct arg_mapper {
913
- using char_type = typename Context::char_type;
914
-
915
- FMT_CONSTEXPR int map(signed char val) { return val; }
916
- FMT_CONSTEXPR unsigned map(unsigned char val) { return val; }
917
- FMT_CONSTEXPR int map(short val) { return val; }
918
- FMT_CONSTEXPR unsigned map(unsigned short val) { return val; }
919
- FMT_CONSTEXPR int map(int val) { return val; }
920
- FMT_CONSTEXPR unsigned map(unsigned val) { return val; }
921
- FMT_CONSTEXPR long_type map(long val) { return val; }
922
- FMT_CONSTEXPR ulong_type map(unsigned long val) { return val; }
923
- FMT_CONSTEXPR long long map(long long val) { return val; }
924
- FMT_CONSTEXPR unsigned long long map(unsigned long long val) { return val; }
925
- FMT_CONSTEXPR int128_t map(int128_t val) { return val; }
926
- FMT_CONSTEXPR uint128_t map(uint128_t val) { return val; }
927
- FMT_CONSTEXPR bool map(bool val) { return val; }
928
-
929
- template <typename T, FMT_ENABLE_IF(is_char<T>::value)>
930
- FMT_CONSTEXPR char_type map(T val) {
931
- static_assert(
932
- std::is_same<T, char>::value || std::is_same<T, char_type>::value,
933
- "mixing character types is disallowed");
934
- return val;
935
- }
936
-
937
- FMT_CONSTEXPR float map(float val) { return val; }
938
- FMT_CONSTEXPR double map(double val) { return val; }
939
- FMT_CONSTEXPR long double map(long double val) { return val; }
940
-
941
- FMT_CONSTEXPR const char_type* map(char_type* val) { return val; }
942
- FMT_CONSTEXPR const char_type* map(const char_type* val) { return val; }
943
- template <typename T, FMT_ENABLE_IF(is_string<T>::value)>
944
- FMT_CONSTEXPR basic_string_view<char_type> map(const T& val) {
945
- static_assert(std::is_same<char_type, char_t<T>>::value,
946
- "mixing character types is disallowed");
947
- return to_string_view(val);
948
- }
949
- template <typename T,
950
- FMT_ENABLE_IF(
951
- std::is_constructible<basic_string_view<char_type>, T>::value &&
952
- !is_string<T>::value && !has_formatter<T, Context>::value &&
953
- !has_fallback_formatter<T, Context>::value)>
954
- FMT_CONSTEXPR basic_string_view<char_type> map(const T& val) {
955
- return basic_string_view<char_type>(val);
956
- }
957
- template <
958
- typename T,
959
- FMT_ENABLE_IF(
960
- std::is_constructible<std_string_view<char_type>, T>::value &&
961
- !std::is_constructible<basic_string_view<char_type>, T>::value &&
962
- !is_string<T>::value && !has_formatter<T, Context>::value &&
963
- !has_fallback_formatter<T, Context>::value)>
964
- FMT_CONSTEXPR basic_string_view<char_type> map(const T& val) {
965
- return std_string_view<char_type>(val);
966
- }
967
- FMT_CONSTEXPR const char* map(const signed char* val) {
968
- static_assert(std::is_same<char_type, char>::value, "invalid string type");
969
- return reinterpret_cast<const char*>(val);
970
- }
971
- FMT_CONSTEXPR const char* map(const unsigned char* val) {
972
- static_assert(std::is_same<char_type, char>::value, "invalid string type");
973
- return reinterpret_cast<const char*>(val);
974
- }
975
-
976
- FMT_CONSTEXPR const void* map(void* val) { return val; }
977
- FMT_CONSTEXPR const void* map(const void* val) { return val; }
978
- FMT_CONSTEXPR const void* map(std::nullptr_t val) { return val; }
979
- template <typename T> FMT_CONSTEXPR int map(const T*) {
980
- // Formatting of arbitrary pointers is disallowed. If you want to output
981
- // a pointer cast it to "void *" or "const void *". In particular, this
982
- // forbids formatting of "[const] volatile char *" which is printed as bool
983
- // by iostreams.
984
- static_assert(!sizeof(T), "formatting of non-void pointers is disallowed");
985
- return 0;
986
- }
987
-
988
- template <typename T,
989
- FMT_ENABLE_IF(std::is_enum<T>::value &&
990
- !has_formatter<T, Context>::value &&
991
- !has_fallback_formatter<T, Context>::value)>
992
- FMT_CONSTEXPR auto map(const T& val)
993
- -> decltype(std::declval<arg_mapper>().map(
994
- static_cast<typename std::underlying_type<T>::type>(val))) {
995
- return map(static_cast<typename std::underlying_type<T>::type>(val));
996
- }
997
- template <typename T,
998
- FMT_ENABLE_IF(!is_string<T>::value && !is_char<T>::value &&
999
- (has_formatter<T, Context>::value ||
1000
- has_fallback_formatter<T, Context>::value))>
1001
- FMT_CONSTEXPR const T& map(const T& val) {
1002
- return val;
1003
- }
1004
-
1005
- template <typename T>
1006
- FMT_CONSTEXPR const named_arg_base<char_type>& map(
1007
- const named_arg<T, char_type>& val) {
1008
- auto arg = make_arg<Context>(val.value);
1009
- std::memcpy(val.data, &arg, sizeof(arg));
1010
- return val;
1011
- }
1012
-
1013
- int map(...) {
1014
- constexpr bool formattable = sizeof(Context) == 0;
1015
- static_assert(
1016
- formattable,
1017
- "Cannot format argument. To make type T formattable provide a "
1018
- "formatter<T> specialization: "
1019
- "https://fmt.dev/latest/api.html#formatting-user-defined-types");
1020
- return 0;
1021
- }
1022
- };
1023
-
1024
- // A type constant after applying arg_mapper<Context>.
1025
- template <typename T, typename Context>
1026
- using mapped_type_constant =
1027
- type_constant<decltype(arg_mapper<Context>().map(std::declval<const T&>())),
1028
- typename Context::char_type>;
1029
-
1030
- enum { packed_arg_bits = 5 };
1031
- // Maximum number of arguments with packed types.
1032
- enum { max_packed_args = 63 / packed_arg_bits };
1033
- enum : unsigned long long { is_unpacked_bit = 1ULL << 63 };
1034
-
1035
- template <typename Context> class arg_map;
1036
- } // namespace internal
1037
-
1038
- // A formatting argument. It is a trivially copyable/constructible type to
1039
- // allow storage in basic_memory_buffer.
1040
- template <typename Context> class basic_format_arg {
1041
- private:
1042
- internal::value<Context> value_;
1043
- internal::type type_;
1044
-
1045
- template <typename ContextType, typename T>
1046
- friend FMT_CONSTEXPR basic_format_arg<ContextType> internal::make_arg(
1047
- const T& value);
1048
-
1049
- template <typename Visitor, typename Ctx>
1050
- friend FMT_CONSTEXPR auto visit_format_arg(Visitor&& vis,
1051
- const basic_format_arg<Ctx>& arg)
1052
- -> decltype(vis(0));
1053
-
1054
- friend class basic_format_args<Context>;
1055
- friend class internal::arg_map<Context>;
1056
-
1057
- using char_type = typename Context::char_type;
1058
-
1059
- public:
1060
- class handle {
1061
- public:
1062
- explicit handle(internal::custom_value<Context> custom) : custom_(custom) {}
1063
-
1064
- void format(basic_format_parse_context<char_type>& parse_ctx,
1065
- Context& ctx) const {
1066
- custom_.format(custom_.value, parse_ctx, ctx);
1067
- }
1068
-
1069
- private:
1070
- internal::custom_value<Context> custom_;
1071
- };
1072
-
1073
- FMT_CONSTEXPR basic_format_arg() : type_(internal::type::none_type) {}
1074
-
1075
- FMT_CONSTEXPR explicit operator bool() const FMT_NOEXCEPT {
1076
- return type_ != internal::type::none_type;
1077
- }
1078
-
1079
- internal::type type() const { return type_; }
1080
-
1081
- bool is_integral() const { return internal::is_integral_type(type_); }
1082
- bool is_arithmetic() const { return internal::is_arithmetic_type(type_); }
1083
- };
1084
-
1085
- /**
1086
- \rst
1087
- Visits an argument dispatching to the appropriate visit method based on
1088
- the argument type. For example, if the argument type is ``double`` then
1089
- ``vis(value)`` will be called with the value of type ``double``.
1090
- \endrst
1091
- */
1092
- template <typename Visitor, typename Context>
1093
- FMT_CONSTEXPR auto visit_format_arg(Visitor&& vis,
1094
- const basic_format_arg<Context>& arg)
1095
- -> decltype(vis(0)) {
1096
- using char_type = typename Context::char_type;
1097
- switch (arg.type_) {
1098
- case internal::type::none_type:
1099
- break;
1100
- case internal::type::named_arg_type:
1101
- FMT_ASSERT(false, "invalid argument type");
1102
- break;
1103
- case internal::type::int_type:
1104
- return vis(arg.value_.int_value);
1105
- case internal::type::uint_type:
1106
- return vis(arg.value_.uint_value);
1107
- case internal::type::long_long_type:
1108
- return vis(arg.value_.long_long_value);
1109
- case internal::type::ulong_long_type:
1110
- return vis(arg.value_.ulong_long_value);
1111
- #if FMT_USE_INT128
1112
- case internal::type::int128_type:
1113
- return vis(arg.value_.int128_value);
1114
- case internal::type::uint128_type:
1115
- return vis(arg.value_.uint128_value);
1116
- #else
1117
- case internal::type::int128_type:
1118
- case internal::type::uint128_type:
1119
- break;
1120
- #endif
1121
- case internal::type::bool_type:
1122
- return vis(arg.value_.bool_value);
1123
- case internal::type::char_type:
1124
- return vis(arg.value_.char_value);
1125
- case internal::type::float_type:
1126
- return vis(arg.value_.float_value);
1127
- case internal::type::double_type:
1128
- return vis(arg.value_.double_value);
1129
- case internal::type::long_double_type:
1130
- return vis(arg.value_.long_double_value);
1131
- case internal::type::cstring_type:
1132
- return vis(arg.value_.string.data);
1133
- case internal::type::string_type:
1134
- return vis(basic_string_view<char_type>(arg.value_.string.data,
1135
- arg.value_.string.size));
1136
- case internal::type::pointer_type:
1137
- return vis(arg.value_.pointer);
1138
- case internal::type::custom_type:
1139
- return vis(typename basic_format_arg<Context>::handle(arg.value_.custom));
1140
- }
1141
- return vis(monostate());
1142
- }
1143
-
1144
- namespace internal {
1145
- // A map from argument names to their values for named arguments.
1146
- template <typename Context> class arg_map {
1147
- private:
1148
- using char_type = typename Context::char_type;
1149
-
1150
- struct entry {
1151
- basic_string_view<char_type> name;
1152
- basic_format_arg<Context> arg;
1153
- };
1154
-
1155
- entry* map_;
1156
- unsigned size_;
1157
-
1158
- void push_back(value<Context> val) {
1159
- const auto& named = *val.named_arg;
1160
- map_[size_] = {named.name, named.template deserialize<Context>()};
1161
- ++size_;
1162
- }
1163
-
1164
- public:
1165
- arg_map(const arg_map&) = delete;
1166
- void operator=(const arg_map&) = delete;
1167
- arg_map() : map_(nullptr), size_(0) {}
1168
- void init(const basic_format_args<Context>& args);
1169
- ~arg_map() { delete[] map_; }
1170
-
1171
- basic_format_arg<Context> find(basic_string_view<char_type> name) const {
1172
- // The list is unsorted, so just return the first matching name.
1173
- for (entry *it = map_, *end = map_ + size_; it != end; ++it) {
1174
- if (it->name == name) return it->arg;
1175
- }
1176
- return {};
1177
- }
1178
- };
1179
-
1180
- // A type-erased reference to an std::locale to avoid heavy <locale> include.
1181
- class locale_ref {
1182
- private:
1183
- const void* locale_; // A type-erased pointer to std::locale.
1184
-
1185
- public:
1186
- locale_ref() : locale_(nullptr) {}
1187
- template <typename Locale> explicit locale_ref(const Locale& loc);
1188
-
1189
- explicit operator bool() const FMT_NOEXCEPT { return locale_ != nullptr; }
1190
-
1191
- template <typename Locale> Locale get() const;
1192
- };
1193
-
1194
- template <typename> constexpr unsigned long long encode_types() { return 0; }
1195
-
1196
- template <typename Context, typename Arg, typename... Args>
1197
- constexpr unsigned long long encode_types() {
1198
- return static_cast<unsigned>(mapped_type_constant<Arg, Context>::value) |
1199
- (encode_types<Context, Args...>() << packed_arg_bits);
1200
- }
1201
-
1202
- template <typename Context, typename T>
1203
- FMT_CONSTEXPR basic_format_arg<Context> make_arg(const T& value) {
1204
- basic_format_arg<Context> arg;
1205
- arg.type_ = mapped_type_constant<T, Context>::value;
1206
- arg.value_ = arg_mapper<Context>().map(value);
1207
- return arg;
1208
- }
1209
-
1210
- template <bool IS_PACKED, typename Context, typename T,
1211
- FMT_ENABLE_IF(IS_PACKED)>
1212
- inline value<Context> make_arg(const T& val) {
1213
- return arg_mapper<Context>().map(val);
1214
- }
1215
-
1216
- template <bool IS_PACKED, typename Context, typename T,
1217
- FMT_ENABLE_IF(!IS_PACKED)>
1218
- inline basic_format_arg<Context> make_arg(const T& value) {
1219
- return make_arg<Context>(value);
1220
- }
1221
-
1222
- template <typename T> struct is_reference_wrapper : std::false_type {};
1223
-
1224
- template <typename T>
1225
- struct is_reference_wrapper<std::reference_wrapper<T>> : std::true_type {};
1226
-
1227
- class dynamic_arg_list {
1228
- // Workaround for clang's -Wweak-vtables. Unlike for regular classes, for
1229
- // templates it doesn't complain about inability to deduce single translation
1230
- // unit for placing vtable. So storage_node_base is made a fake template.
1231
- template <typename = void> struct node {
1232
- virtual ~node() = default;
1233
- std::unique_ptr<node<>> next;
1234
- };
1235
-
1236
- template <typename T> struct typed_node : node<> {
1237
- T value;
1238
-
1239
- template <typename Arg>
1240
- FMT_CONSTEXPR typed_node(const Arg& arg) : value(arg) {}
1241
-
1242
- template <typename Char>
1243
- FMT_CONSTEXPR typed_node(const basic_string_view<Char>& arg)
1244
- : value(arg.data(), arg.size()) {}
1245
- };
1246
-
1247
- std::unique_ptr<node<>> head_;
1248
-
1249
- public:
1250
- template <typename T, typename Arg> const T& push(const Arg& arg) {
1251
- auto node = std::unique_ptr<typed_node<T>>(new typed_node<T>(arg));
1252
- auto& value = node->value;
1253
- node->next = std::move(head_);
1254
- head_ = std::move(node);
1255
- return value;
1256
- }
1257
- };
1258
- } // namespace internal
1259
-
1260
- // Formatting context.
1261
- template <typename OutputIt, typename Char> class basic_format_context {
1262
- public:
1263
- /** The character type for the output. */
1264
- using char_type = Char;
1265
-
1266
- private:
1267
- OutputIt out_;
1268
- basic_format_args<basic_format_context> args_;
1269
- internal::arg_map<basic_format_context> map_;
1270
- internal::locale_ref loc_;
1271
-
1272
- public:
1273
- using iterator = OutputIt;
1274
- using format_arg = basic_format_arg<basic_format_context>;
1275
- template <typename T> using formatter_type = formatter<T, char_type>;
1276
-
1277
- basic_format_context(const basic_format_context&) = delete;
1278
- void operator=(const basic_format_context&) = delete;
1279
- /**
1280
- Constructs a ``basic_format_context`` object. References to the arguments are
1281
- stored in the object so make sure they have appropriate lifetimes.
1282
- */
1283
- basic_format_context(OutputIt out,
1284
- basic_format_args<basic_format_context> ctx_args,
1285
- internal::locale_ref loc = internal::locale_ref())
1286
- : out_(out), args_(ctx_args), loc_(loc) {}
1287
-
1288
- format_arg arg(int id) const { return args_.get(id); }
1289
-
1290
- // Checks if manual indexing is used and returns the argument with the
1291
- // specified name.
1292
- format_arg arg(basic_string_view<char_type> name);
1293
-
1294
- internal::error_handler error_handler() { return {}; }
1295
- void on_error(const char* message) { error_handler().on_error(message); }
1296
-
1297
- // Returns an iterator to the beginning of the output range.
1298
- iterator out() { return out_; }
1299
-
1300
- // Advances the begin iterator to ``it``.
1301
- void advance_to(iterator it) { out_ = it; }
1302
-
1303
- internal::locale_ref locale() { return loc_; }
1304
- };
1305
-
1306
- template <typename Char>
1307
- using buffer_context =
1308
- basic_format_context<std::back_insert_iterator<internal::buffer<Char>>,
1309
- Char>;
1310
- using format_context = buffer_context<char>;
1311
- using wformat_context = buffer_context<wchar_t>;
1312
-
1313
- /**
1314
- \rst
1315
- An array of references to arguments. It can be implicitly converted into
1316
- `~fmt::basic_format_args` for passing into type-erased formatting functions
1317
- such as `~fmt::vformat`.
1318
- \endrst
1319
- */
1320
- template <typename Context, typename... Args>
1321
- class format_arg_store
1322
- #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
1323
- // Workaround a GCC template argument substitution bug.
1324
- : public basic_format_args<Context>
1325
- #endif
1326
- {
1327
- private:
1328
- static const size_t num_args = sizeof...(Args);
1329
- static const bool is_packed = num_args < internal::max_packed_args;
1330
-
1331
- using value_type = conditional_t<is_packed, internal::value<Context>,
1332
- basic_format_arg<Context>>;
1333
-
1334
- // If the arguments are not packed, add one more element to mark the end.
1335
- value_type data_[num_args + (num_args == 0 ? 1 : 0)];
1336
-
1337
- friend class basic_format_args<Context>;
1338
-
1339
- public:
1340
- static constexpr unsigned long long types =
1341
- is_packed ? internal::encode_types<Context, Args...>()
1342
- : internal::is_unpacked_bit | num_args;
1343
-
1344
- format_arg_store(const Args&... args)
1345
- :
1346
- #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
1347
- basic_format_args<Context>(*this),
1348
- #endif
1349
- data_{internal::make_arg<is_packed, Context>(args)...} {
1350
- }
1351
- };
1352
-
1353
- /**
1354
- \rst
1355
- Constructs an `~fmt::format_arg_store` object that contains references to
1356
- arguments and can be implicitly converted to `~fmt::format_args`. `Context`
1357
- can be omitted in which case it defaults to `~fmt::context`.
1358
- See `~fmt::arg` for lifetime considerations.
1359
- \endrst
1360
- */
1361
- template <typename Context = format_context, typename... Args>
1362
- inline format_arg_store<Context, Args...> make_format_args(
1363
- const Args&... args) {
1364
- return {args...};
1365
- }
1366
-
1367
- /**
1368
- \rst
1369
- A dynamic version of `fmt::format_arg_store<>`.
1370
- It's equipped with a storage to potentially temporary objects which lifetime
1371
- could be shorter than the format arguments object.
1372
-
1373
- It can be implicitly converted into `~fmt::basic_format_args` for passing
1374
- into type-erased formatting functions such as `~fmt::vformat`.
1375
- \endrst
1376
- */
1377
- template <typename Context>
1378
- class dynamic_format_arg_store
1379
- #if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
1380
- // Workaround a GCC template argument substitution bug.
1381
- : public basic_format_args<Context>
1382
- #endif
1383
- {
1384
- private:
1385
- using char_type = typename Context::char_type;
1386
-
1387
- template <typename T> struct need_copy {
1388
- static constexpr internal::type mapped_type =
1389
- internal::mapped_type_constant<T, Context>::value;
1390
-
1391
- enum {
1392
- value = !(internal::is_reference_wrapper<T>::value ||
1393
- std::is_same<T, basic_string_view<char_type>>::value ||
1394
- std::is_same<T, internal::std_string_view<char_type>>::value ||
1395
- (mapped_type != internal::type::cstring_type &&
1396
- mapped_type != internal::type::string_type &&
1397
- mapped_type != internal::type::custom_type &&
1398
- mapped_type != internal::type::named_arg_type))
1399
- };
1400
- };
1401
-
1402
- template <typename T>
1403
- using stored_type = conditional_t<internal::is_string<T>::value,
1404
- std::basic_string<char_type>, T>;
1405
-
1406
- // Storage of basic_format_arg must be contiguous.
1407
- std::vector<basic_format_arg<Context>> data_;
1408
-
1409
- // Storage of arguments not fitting into basic_format_arg must grow
1410
- // without relocation because items in data_ refer to it.
1411
- internal::dynamic_arg_list dynamic_args_;
1412
-
1413
- friend class basic_format_args<Context>;
1414
-
1415
- unsigned long long get_types() const {
1416
- return internal::is_unpacked_bit | data_.size();
1417
- }
1418
-
1419
- template <typename T> void emplace_arg(const T& arg) {
1420
- data_.emplace_back(internal::make_arg<Context>(arg));
1421
- }
1422
-
1423
- public:
1424
- /**
1425
- \rst
1426
- Adds an argument into the dynamic store for later passing to a formating
1427
- function.
1428
-
1429
- Note that custom types and string types (but not string views!) are copied
1430
- into the store with dynamic memory (in addition to resizing vector).
1431
-
1432
- **Example**::
1433
-
1434
- fmt::dynamic_format_arg_store<fmt::format_context> store;
1435
- store.push_back(42);
1436
- store.push_back("abc");
1437
- store.push_back(1.5f);
1438
- std::string result = fmt::vformat("{} and {} and {}", store);
1439
- \endrst
1440
- */
1441
- template <typename T> void push_back(const T& arg) {
1442
- static_assert(
1443
- !std::is_base_of<internal::named_arg_base<char_type>, T>::value,
1444
- "named arguments are not supported yet");
1445
- if (internal::const_check(need_copy<T>::value))
1446
- emplace_arg(dynamic_args_.push<stored_type<T>>(arg));
1447
- else
1448
- emplace_arg(arg);
1449
- }
1450
-
1451
- /**
1452
- Adds a reference to the argument into the dynamic store for later passing to
1453
- a formating function.
1454
- */
1455
- template <typename T> void push_back(std::reference_wrapper<T> arg) {
1456
- static_assert(
1457
- need_copy<T>::value,
1458
- "objects of built-in types and string views are always copied");
1459
- emplace_arg(arg.get());
1460
- }
1461
- };
1462
-
1463
- /**
1464
- \rst
1465
- A view of a collection of formatting arguments. To avoid lifetime issues it
1466
- should only be used as a parameter type in type-erased functions such as
1467
- ``vformat``::
1468
-
1469
- void vlog(string_view format_str, format_args args); // OK
1470
- format_args args = make_format_args(42); // Error: dangling reference
1471
- \endrst
1472
- */
1473
- template <typename Context> class basic_format_args {
1474
- public:
1475
- using size_type = int;
1476
- using format_arg = basic_format_arg<Context>;
1477
-
1478
- private:
1479
- // To reduce compiled code size per formatting function call, types of first
1480
- // max_packed_args arguments are passed in the types_ field.
1481
- unsigned long long types_;
1482
- union {
1483
- // If the number of arguments is less than max_packed_args, the argument
1484
- // values are stored in values_, otherwise they are stored in args_.
1485
- // This is done to reduce compiled code size as storing larger objects
1486
- // may require more code (at least on x86-64) even if the same amount of
1487
- // data is actually copied to stack. It saves ~10% on the bloat test.
1488
- const internal::value<Context>* values_;
1489
- const format_arg* args_;
1490
- };
1491
-
1492
- bool is_packed() const { return (types_ & internal::is_unpacked_bit) == 0; }
1493
-
1494
- internal::type type(int index) const {
1495
- int shift = index * internal::packed_arg_bits;
1496
- unsigned int mask = (1 << internal::packed_arg_bits) - 1;
1497
- return static_cast<internal::type>((types_ >> shift) & mask);
1498
- }
1499
-
1500
- friend class internal::arg_map<Context>;
1501
-
1502
- void set_data(const internal::value<Context>* values) { values_ = values; }
1503
- void set_data(const format_arg* args) { args_ = args; }
1504
-
1505
- format_arg do_get(int index) const {
1506
- format_arg arg;
1507
- if (!is_packed()) {
1508
- auto num_args = max_size();
1509
- if (index < num_args) arg = args_[index];
1510
- return arg;
1511
- }
1512
- if (index > internal::max_packed_args) return arg;
1513
- arg.type_ = type(index);
1514
- if (arg.type_ == internal::type::none_type) return arg;
1515
- internal::value<Context>& val = arg.value_;
1516
- val = values_[index];
1517
- return arg;
1518
- }
1519
-
1520
- public:
1521
- basic_format_args() : types_(0) {}
1522
-
1523
- /**
1524
- \rst
1525
- Constructs a `basic_format_args` object from `~fmt::format_arg_store`.
1526
- \endrst
1527
- */
1528
- template <typename... Args>
1529
- basic_format_args(const format_arg_store<Context, Args...>& store)
1530
- : types_(store.types) {
1531
- set_data(store.data_);
1532
- }
1533
-
1534
- /**
1535
- \rst
1536
- Constructs a `basic_format_args` object from
1537
- `~fmt::dynamic_format_arg_store`.
1538
- \endrst
1539
- */
1540
- basic_format_args(const dynamic_format_arg_store<Context>& store)
1541
- : types_(store.get_types()) {
1542
- set_data(store.data_.data());
1543
- }
1544
-
1545
- /**
1546
- \rst
1547
- Constructs a `basic_format_args` object from a dynamic set of arguments.
1548
- \endrst
1549
- */
1550
- basic_format_args(const format_arg* args, int count)
1551
- : types_(internal::is_unpacked_bit | internal::to_unsigned(count)) {
1552
- set_data(args);
1553
- }
1554
-
1555
- /** Returns the argument at specified index. */
1556
- format_arg get(int index) const {
1557
- format_arg arg = do_get(index);
1558
- if (arg.type_ == internal::type::named_arg_type)
1559
- arg = arg.value_.named_arg->template deserialize<Context>();
1560
- return arg;
1561
- }
1562
-
1563
- int max_size() const {
1564
- unsigned long long max_packed = internal::max_packed_args;
1565
- return static_cast<int>(is_packed() ? max_packed
1566
- : types_ & ~internal::is_unpacked_bit);
1567
- }
1568
- };
1569
-
1570
- /** An alias to ``basic_format_args<context>``. */
1571
- // It is a separate type rather than an alias to make symbols readable.
1572
- struct format_args : basic_format_args<format_context> {
1573
- template <typename... Args>
1574
- format_args(Args&&... args)
1575
- : basic_format_args<format_context>(static_cast<Args&&>(args)...) {}
1576
- };
1577
- struct wformat_args : basic_format_args<wformat_context> {
1578
- template <typename... Args>
1579
- wformat_args(Args&&... args)
1580
- : basic_format_args<wformat_context>(static_cast<Args&&>(args)...) {}
1581
- };
1582
-
1583
- template <typename Container> struct is_contiguous : std::false_type {};
1584
-
1585
- template <typename Char>
1586
- struct is_contiguous<std::basic_string<Char>> : std::true_type {};
1587
-
1588
- template <typename Char>
1589
- struct is_contiguous<internal::buffer<Char>> : std::true_type {};
1590
-
1591
- namespace internal {
1592
-
1593
- template <typename OutputIt>
1594
- struct is_contiguous_back_insert_iterator : std::false_type {};
1595
- template <typename Container>
1596
- struct is_contiguous_back_insert_iterator<std::back_insert_iterator<Container>>
1597
- : is_contiguous<Container> {};
1598
-
1599
- template <typename Char> struct named_arg_base {
1600
- basic_string_view<Char> name;
1601
-
1602
- // Serialized value<context>.
1603
- mutable char data[sizeof(basic_format_arg<buffer_context<Char>>)];
1604
-
1605
- named_arg_base(basic_string_view<Char> nm) : name(nm) {}
1606
-
1607
- template <typename Context> basic_format_arg<Context> deserialize() const {
1608
- basic_format_arg<Context> arg;
1609
- std::memcpy(&arg, data, sizeof(basic_format_arg<Context>));
1610
- return arg;
1611
- }
1612
- };
1613
-
1614
- struct view {};
1615
-
1616
- template <typename T, typename Char>
1617
- struct named_arg : view, named_arg_base<Char> {
1618
- const T& value;
1619
-
1620
- named_arg(basic_string_view<Char> name, const T& val)
1621
- : named_arg_base<Char>(name), value(val) {}
1622
- };
1623
-
1624
- template <typename..., typename S, FMT_ENABLE_IF(!is_compile_string<S>::value)>
1625
- inline void check_format_string(const S&) {
1626
- #if defined(FMT_ENFORCE_COMPILE_STRING)
1627
- static_assert(is_compile_string<S>::value,
1628
- "FMT_ENFORCE_COMPILE_STRING requires all format strings to "
1629
- "utilize FMT_STRING() or fmt().");
1630
- #endif
1631
- }
1632
- template <typename..., typename S, FMT_ENABLE_IF(is_compile_string<S>::value)>
1633
- void check_format_string(S);
1634
-
1635
- template <bool...> struct bool_pack;
1636
- template <bool... Args>
1637
- using all_true =
1638
- std::is_same<bool_pack<Args..., true>, bool_pack<true, Args...>>;
1639
-
1640
- template <typename... Args, typename S, typename Char = char_t<S>>
1641
- inline format_arg_store<buffer_context<Char>, remove_reference_t<Args>...>
1642
- make_args_checked(const S& format_str,
1643
- const remove_reference_t<Args>&... args) {
1644
- static_assert(
1645
- all_true<(!std::is_base_of<view, remove_reference_t<Args>>::value ||
1646
- !std::is_reference<Args>::value)...>::value,
1647
- "passing views as lvalues is disallowed");
1648
- check_format_string<Args...>(format_str);
1649
- return {args...};
1650
- }
1651
-
1652
- template <typename Char>
1653
- std::basic_string<Char> vformat(
1654
- basic_string_view<Char> format_str,
1655
- basic_format_args<buffer_context<type_identity_t<Char>>> args);
1656
-
1657
- template <typename Char>
1658
- typename buffer_context<Char>::iterator vformat_to(
1659
- buffer<Char>& buf, basic_string_view<Char> format_str,
1660
- basic_format_args<buffer_context<type_identity_t<Char>>> args);
1661
-
1662
- template <typename Char, typename Args,
1663
- FMT_ENABLE_IF(!std::is_same<Char, char>::value)>
1664
- inline void vprint_mojibake(std::FILE*, basic_string_view<Char>, const Args&) {}
1665
-
1666
- FMT_API void vprint_mojibake(std::FILE*, string_view, format_args);
1667
- #ifndef _WIN32
1668
- inline void vprint_mojibake(std::FILE*, string_view, format_args) {}
1669
- #endif
1670
- } // namespace internal
1671
-
1672
- /**
1673
- \rst
1674
- Returns a named argument to be used in a formatting function. It should only
1675
- be used in a call to a formatting function.
1676
-
1677
- **Example**::
1678
-
1679
- fmt::print("Elapsed time: {s:.2f} seconds", fmt::arg("s", 1.23));
1680
- \endrst
1681
- */
1682
- template <typename S, typename T, typename Char = char_t<S>>
1683
- inline internal::named_arg<T, Char> arg(const S& name, const T& arg) {
1684
- static_assert(internal::is_string<S>::value, "");
1685
- return {name, arg};
1686
- }
1687
-
1688
- // Disable nested named arguments, e.g. ``arg("a", arg("b", 42))``.
1689
- template <typename S, typename T, typename Char>
1690
- void arg(S, internal::named_arg<T, Char>) = delete;
1691
-
1692
- /** Formats a string and writes the output to ``out``. */
1693
- // GCC 8 and earlier cannot handle std::back_insert_iterator<Container> with
1694
- // vformat_to<ArgFormatter>(...) overload, so SFINAE on iterator type instead.
1695
- template <typename OutputIt, typename S, typename Char = char_t<S>,
1696
- FMT_ENABLE_IF(
1697
- internal::is_contiguous_back_insert_iterator<OutputIt>::value)>
1698
- OutputIt vformat_to(
1699
- OutputIt out, const S& format_str,
1700
- basic_format_args<buffer_context<type_identity_t<Char>>> args) {
1701
- using container = remove_reference_t<decltype(internal::get_container(out))>;
1702
- internal::container_buffer<container> buf((internal::get_container(out)));
1703
- internal::vformat_to(buf, to_string_view(format_str), args);
1704
- return out;
1705
- }
1706
-
1707
- template <typename Container, typename S, typename... Args,
1708
- FMT_ENABLE_IF(
1709
- is_contiguous<Container>::value&& internal::is_string<S>::value)>
1710
- inline std::back_insert_iterator<Container> format_to(
1711
- std::back_insert_iterator<Container> out, const S& format_str,
1712
- Args&&... args) {
1713
- return vformat_to(out, to_string_view(format_str),
1714
- internal::make_args_checked<Args...>(format_str, args...));
1715
- }
1716
-
1717
- template <typename S, typename Char = char_t<S>>
1718
- inline std::basic_string<Char> vformat(
1719
- const S& format_str,
1720
- basic_format_args<buffer_context<type_identity_t<Char>>> args) {
1721
- return internal::vformat(to_string_view(format_str), args);
1722
- }
1723
-
1724
- /**
1725
- \rst
1726
- Formats arguments and returns the result as a string.
1727
-
1728
- **Example**::
1729
-
1730
- #include <fmt/core.h>
1731
- std::string message = fmt::format("The answer is {}", 42);
1732
- \endrst
1733
- */
1734
- // Pass char_t as a default template parameter instead of using
1735
- // std::basic_string<char_t<S>> to reduce the symbol size.
1736
- template <typename S, typename... Args, typename Char = char_t<S>>
1737
- inline std::basic_string<Char> format(const S& format_str, Args&&... args) {
1738
- return internal::vformat(
1739
- to_string_view(format_str),
1740
- internal::make_args_checked<Args...>(format_str, args...));
1741
- }
1742
-
1743
- FMT_API void vprint(string_view, format_args);
1744
- FMT_API void vprint(std::FILE*, string_view, format_args);
1745
-
1746
- /**
1747
- \rst
1748
- Formats ``args`` according to specifications in ``format_str`` and writes the
1749
- output to the file ``f``. Strings are assumed to be Unicode-encoded unless the
1750
- ``FMT_UNICODE`` macro is set to 0.
1751
-
1752
- **Example**::
1753
-
1754
- fmt::print(stderr, "Don't {}!", "panic");
1755
- \endrst
1756
- */
1757
- template <typename S, typename... Args, typename Char = char_t<S>>
1758
- inline void print(std::FILE* f, const S& format_str, Args&&... args) {
1759
- return internal::is_unicode<Char>()
1760
- ? vprint(f, to_string_view(format_str),
1761
- internal::make_args_checked<Args...>(format_str, args...))
1762
- : internal::vprint_mojibake(
1763
- f, to_string_view(format_str),
1764
- internal::make_args_checked<Args...>(format_str, args...));
1765
- }
1766
-
1767
- /**
1768
- \rst
1769
- Formats ``args`` according to specifications in ``format_str`` and writes
1770
- the output to ``stdout``. Strings are assumed to be Unicode-encoded unless
1771
- the ``FMT_UNICODE`` macro is set to 0.
1772
-
1773
- **Example**::
1774
-
1775
- fmt::print("Elapsed time: {0:.2f} seconds", 1.23);
1776
- \endrst
1777
- */
1778
- template <typename S, typename... Args, typename Char = char_t<S>>
1779
- inline void print(const S& format_str, Args&&... args) {
1780
- return internal::is_unicode<Char>()
1781
- ? vprint(to_string_view(format_str),
1782
- internal::make_args_checked<Args...>(format_str, args...))
1783
- : internal::vprint_mojibake(
1784
- stdout, to_string_view(format_str),
1785
- internal::make_args_checked<Args...>(format_str, args...));
1786
- }
1787
- FMT_END_NAMESPACE
1788
-
1789
- #endif // FMT_CORE_H_