couchbase 3.0.1-universal-darwin-19 → 3.0.2-universal-darwin-19

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