couchbase 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3059) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/CMakeLists.txt +47 -115
  4. data/ext/couchbase/CMakeLists.txt +142 -0
  5. data/ext/{LICENSE.txt → couchbase/LICENSE.txt} +0 -0
  6. data/ext/{cmake → couchbase/cmake}/Backtrace.cmake +0 -0
  7. data/ext/{cmake → couchbase/cmake}/BuildTracing.cmake +0 -0
  8. data/ext/{cmake → couchbase/cmake}/Cache.cmake +0 -0
  9. data/ext/couchbase/cmake/CompilerWarnings.cmake +83 -0
  10. data/ext/couchbase/cmake/DetectStandardFilesystem.cmake +30 -0
  11. data/ext/couchbase/cmake/OpenSSL.cmake +24 -0
  12. data/ext/couchbase/cmake/PreventInSourceBuilds.cmake +21 -0
  13. data/ext/couchbase/cmake/Sanitizers.cmake +67 -0
  14. data/ext/couchbase/cmake/StandardProjectSettings.cmake +45 -0
  15. data/ext/{cmake → couchbase/cmake}/StaticAnalyzers.cmake +0 -0
  16. data/ext/couchbase/cmake/Testing.cmake +63 -0
  17. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +44 -0
  18. data/ext/couchbase/cmake/VersionInfo.cmake +46 -0
  19. data/ext/couchbase/cmake/build_config.hxx.in +20 -0
  20. data/ext/couchbase/cmake/build_version.hxx.in +32 -0
  21. data/ext/couchbase/cmake/test_filesystem.cpp.in +22 -0
  22. data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +26 -0
  23. data/ext/couchbase/couchbase/bucket.hxx +536 -0
  24. data/ext/couchbase/couchbase/capella_ca.hxx +43 -0
  25. data/ext/couchbase/couchbase/cas.hxx +47 -0
  26. data/ext/couchbase/couchbase/cas_fmt.hxx +37 -0
  27. data/ext/couchbase/couchbase/cluster.cxx +111 -0
  28. data/ext/couchbase/couchbase/cluster.hxx +423 -0
  29. data/ext/couchbase/couchbase/cluster_options.cxx +45 -0
  30. data/ext/couchbase/couchbase/cluster_options.hxx +78 -0
  31. data/ext/couchbase/couchbase/crypto/CMakeLists.txt +12 -0
  32. data/ext/couchbase/couchbase/crypto/cbcrypto.cc +887 -0
  33. data/ext/couchbase/couchbase/crypto/cbcrypto.h +88 -0
  34. data/ext/couchbase/couchbase/design_document_namespace.hxx +26 -0
  35. data/ext/couchbase/couchbase/design_document_namespace_fmt.hxx +47 -0
  36. data/ext/couchbase/couchbase/diagnostics.hxx +97 -0
  37. data/ext/couchbase/couchbase/diagnostics_fmt.hxx +113 -0
  38. data/ext/couchbase/couchbase/diagnostics_json.hxx +100 -0
  39. data/ext/couchbase/couchbase/document_id.cxx +89 -0
  40. data/ext/couchbase/couchbase/document_id.hxx +102 -0
  41. data/ext/couchbase/couchbase/document_id_fmt.hxx +37 -0
  42. data/ext/couchbase/couchbase/error_context/analytics.hxx +51 -0
  43. data/ext/couchbase/couchbase/error_context/http.hxx +47 -0
  44. data/ext/couchbase/couchbase/error_context/key_value.hxx +50 -0
  45. data/ext/couchbase/couchbase/error_context/query.hxx +51 -0
  46. data/ext/couchbase/couchbase/error_context/search.hxx +50 -0
  47. data/ext/couchbase/couchbase/error_context/view.hxx +51 -0
  48. data/ext/couchbase/couchbase/errors.hxx +1038 -0
  49. data/ext/couchbase/couchbase/io/CMakeLists.txt +12 -0
  50. data/ext/couchbase/couchbase/io/dns_client.hxx +217 -0
  51. data/ext/couchbase/couchbase/io/dns_codec.hxx +206 -0
  52. data/ext/couchbase/couchbase/io/dns_config.hxx +115 -0
  53. data/ext/couchbase/couchbase/io/dns_message.hxx +555 -0
  54. data/ext/couchbase/couchbase/io/http_command.hxx +174 -0
  55. data/ext/couchbase/couchbase/io/http_context.hxx +40 -0
  56. data/ext/couchbase/couchbase/io/http_message.hxx +116 -0
  57. data/ext/couchbase/couchbase/io/http_parser.cxx +141 -0
  58. data/ext/couchbase/couchbase/io/http_parser.hxx +55 -0
  59. data/ext/couchbase/couchbase/io/http_session.hxx +544 -0
  60. data/ext/couchbase/couchbase/io/http_session_manager.hxx +377 -0
  61. data/ext/couchbase/couchbase/io/http_traits.hxx +30 -0
  62. data/ext/couchbase/couchbase/io/ip_protocol.hxx +28 -0
  63. data/ext/couchbase/couchbase/io/mcbp_command.hxx +300 -0
  64. data/ext/couchbase/couchbase/io/mcbp_context.hxx +39 -0
  65. data/ext/couchbase/couchbase/io/mcbp_message.cxx +39 -0
  66. data/ext/couchbase/couchbase/io/mcbp_message.hxx +55 -0
  67. data/ext/couchbase/couchbase/io/mcbp_parser.cxx +86 -0
  68. data/ext/couchbase/couchbase/io/mcbp_parser.hxx +45 -0
  69. data/ext/couchbase/couchbase/io/mcbp_session.hxx +1317 -0
  70. data/ext/couchbase/couchbase/io/mcbp_traits.hxx +30 -0
  71. data/ext/couchbase/couchbase/io/query_cache.hxx +61 -0
  72. data/ext/couchbase/{io → couchbase/io}/retry_action.hxx +0 -0
  73. data/ext/couchbase/couchbase/io/retry_context.hxx +38 -0
  74. data/ext/couchbase/couchbase/io/retry_orchestrator.hxx +112 -0
  75. data/ext/couchbase/couchbase/io/retry_reason.hxx +158 -0
  76. data/ext/couchbase/couchbase/io/retry_reason_fmt.hxx +103 -0
  77. data/ext/couchbase/couchbase/io/retry_strategy.hxx +152 -0
  78. data/ext/couchbase/couchbase/io/streams.hxx +253 -0
  79. data/ext/couchbase/couchbase/json_string.hxx +48 -0
  80. data/ext/couchbase/couchbase/logger/CMakeLists.txt +9 -0
  81. data/ext/couchbase/couchbase/logger/configuration.hxx +52 -0
  82. data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.cxx +157 -0
  83. data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.hxx +76 -0
  84. data/ext/couchbase/couchbase/logger/logger.cxx +337 -0
  85. data/ext/couchbase/couchbase/logger/logger.hxx +235 -0
  86. data/ext/couchbase/couchbase/management/CMakeLists.txt +13 -0
  87. data/ext/couchbase/couchbase/management/analytics_dataset.hxx +30 -0
  88. data/ext/couchbase/couchbase/management/analytics_index.hxx +30 -0
  89. data/ext/couchbase/couchbase/management/analytics_link.hxx +22 -0
  90. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.cxx +67 -0
  91. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.hxx +76 -0
  92. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external_json.hxx +52 -0
  93. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.cxx +104 -0
  94. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.hxx +107 -0
  95. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote_json.hxx +63 -0
  96. data/ext/couchbase/couchbase/management/analytics_link_s3_external.cxx +57 -0
  97. data/ext/couchbase/couchbase/management/analytics_link_s3_external.hxx +69 -0
  98. data/ext/couchbase/couchbase/management/analytics_link_s3_external_json.hxx +47 -0
  99. data/ext/couchbase/couchbase/management/bucket_settings.hxx +134 -0
  100. data/ext/couchbase/couchbase/management/bucket_settings_json.hxx +123 -0
  101. data/ext/couchbase/couchbase/management/design_document.hxx +41 -0
  102. data/ext/couchbase/couchbase/management/eventing_function.hxx +188 -0
  103. data/ext/couchbase/couchbase/management/eventing_function_json.hxx +212 -0
  104. data/ext/couchbase/couchbase/management/eventing_status.hxx +84 -0
  105. data/ext/couchbase/couchbase/management/eventing_status_json.hxx +77 -0
  106. data/ext/couchbase/couchbase/management/query_index.hxx +39 -0
  107. data/ext/couchbase/couchbase/management/rbac.hxx +77 -0
  108. data/ext/couchbase/couchbase/management/rbac_fmt.hxx +49 -0
  109. data/ext/couchbase/couchbase/management/rbac_json.hxx +179 -0
  110. data/ext/couchbase/couchbase/management/search_index.hxx +38 -0
  111. data/ext/couchbase/couchbase/management/search_index_json.hxx +58 -0
  112. data/ext/couchbase/couchbase/meta/CMakeLists.txt +15 -0
  113. data/ext/couchbase/couchbase/meta/version.cxx +181 -0
  114. data/ext/couchbase/couchbase/meta/version.hxx +45 -0
  115. data/ext/couchbase/couchbase/metrics/CMakeLists.txt +11 -0
  116. data/ext/couchbase/couchbase/metrics/logging_meter.cxx +194 -0
  117. data/ext/couchbase/couchbase/metrics/logging_meter.hxx +74 -0
  118. data/ext/couchbase/{metrics → couchbase/metrics}/logging_meter_options.hxx +0 -0
  119. data/ext/couchbase/couchbase/metrics/meter.hxx +52 -0
  120. data/ext/couchbase/couchbase/metrics/noop_meter.hxx +47 -0
  121. data/ext/couchbase/couchbase/mutation_token.hxx +31 -0
  122. data/ext/couchbase/couchbase/mutation_token_fmt.hxx +37 -0
  123. data/ext/couchbase/couchbase/operations/CMakeLists.txt +35 -0
  124. data/ext/couchbase/couchbase/operations/document_analytics.cxx +195 -0
  125. data/ext/couchbase/couchbase/operations/document_analytics.hxx +92 -0
  126. data/ext/couchbase/couchbase/operations/document_append.cxx +46 -0
  127. data/ext/couchbase/couchbase/operations/document_append.hxx +63 -0
  128. data/ext/couchbase/couchbase/operations/document_decrement.cxx +57 -0
  129. data/ext/couchbase/couchbase/operations/document_decrement.hxx +67 -0
  130. data/ext/couchbase/couchbase/operations/document_exists.cxx +49 -0
  131. data/ext/couchbase/couchbase/operations/document_exists.hxx +61 -0
  132. data/ext/couchbase/couchbase/operations/document_get.cxx +44 -0
  133. data/ext/couchbase/couchbase/operations/document_get.hxx +53 -0
  134. data/ext/couchbase/couchbase/operations/document_get_and_lock.cxx +45 -0
  135. data/ext/couchbase/couchbase/operations/document_get_and_lock.hxx +54 -0
  136. data/ext/couchbase/couchbase/operations/document_get_and_touch.cxx +45 -0
  137. data/ext/couchbase/couchbase/operations/document_get_and_touch.hxx +54 -0
  138. data/ext/couchbase/couchbase/operations/document_get_projected.cxx +227 -0
  139. data/ext/couchbase/couchbase/operations/document_get_projected.hxx +58 -0
  140. data/ext/couchbase/couchbase/operations/document_increment.cxx +57 -0
  141. data/ext/couchbase/couchbase/operations/document_increment.hxx +67 -0
  142. data/ext/couchbase/couchbase/operations/document_insert.cxx +48 -0
  143. data/ext/couchbase/couchbase/operations/document_insert.hxx +65 -0
  144. data/ext/couchbase/couchbase/operations/document_lookup_in.cxx +81 -0
  145. data/ext/couchbase/couchbase/operations/document_lookup_in.hxx +64 -0
  146. data/ext/couchbase/couchbase/operations/document_mutate_in.cxx +104 -0
  147. data/ext/couchbase/couchbase/operations/document_mutate_in.hxx +82 -0
  148. data/ext/couchbase/couchbase/operations/document_prepend.cxx +46 -0
  149. data/ext/couchbase/couchbase/operations/document_prepend.hxx +63 -0
  150. data/ext/couchbase/couchbase/operations/document_query.cxx +370 -0
  151. data/ext/couchbase/couchbase/operations/document_query.hxx +123 -0
  152. data/ext/couchbase/couchbase/operations/document_remove.cxx +46 -0
  153. data/ext/couchbase/couchbase/operations/document_remove.hxx +63 -0
  154. data/ext/couchbase/couchbase/operations/document_replace.cxx +52 -0
  155. data/ext/couchbase/couchbase/operations/document_replace.hxx +67 -0
  156. data/ext/couchbase/couchbase/operations/document_search.cxx +311 -0
  157. data/ext/couchbase/couchbase/operations/document_search.hxx +153 -0
  158. data/ext/couchbase/couchbase/operations/document_touch.cxx +43 -0
  159. data/ext/couchbase/couchbase/operations/document_touch.hxx +52 -0
  160. data/ext/couchbase/couchbase/operations/document_unlock.cxx +43 -0
  161. data/ext/couchbase/couchbase/operations/document_unlock.hxx +52 -0
  162. data/ext/couchbase/couchbase/operations/document_upsert.cxx +52 -0
  163. data/ext/couchbase/couchbase/operations/document_upsert.hxx +66 -0
  164. data/ext/couchbase/couchbase/operations/document_view.cxx +183 -0
  165. data/ext/couchbase/couchbase/operations/document_view.hxx +97 -0
  166. data/ext/couchbase/couchbase/operations/http_noop.cxx +60 -0
  167. data/ext/couchbase/couchbase/operations/http_noop.hxx +48 -0
  168. data/ext/couchbase/couchbase/operations/management/CMakeLists.txt +79 -0
  169. data/ext/couchbase/couchbase/operations/management/analytics.hxx +34 -0
  170. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.cxx +94 -0
  171. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.hxx +57 -0
  172. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.cxx +83 -0
  173. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.hxx +54 -0
  174. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.cxx +80 -0
  175. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.hxx +52 -0
  176. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.cxx +82 -0
  177. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.hxx +53 -0
  178. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.cxx +82 -0
  179. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.hxx +53 -0
  180. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.cxx +70 -0
  181. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.hxx +52 -0
  182. data/ext/couchbase/couchbase/operations/management/analytics_index_create.cxx +106 -0
  183. data/ext/couchbase/couchbase/operations/management/analytics_index_create.hxx +56 -0
  184. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.cxx +90 -0
  185. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.hxx +55 -0
  186. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.cxx +80 -0
  187. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.hxx +52 -0
  188. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.cxx +82 -0
  189. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.hxx +57 -0
  190. data/ext/couchbase/couchbase/operations/management/analytics_link_create.cxx +87 -0
  191. data/ext/couchbase/couchbase/operations/management/analytics_link_create.hxx +77 -0
  192. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.cxx +80 -0
  193. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.hxx +56 -0
  194. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.cxx +103 -0
  195. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.hxx +56 -0
  196. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.cxx +130 -0
  197. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.hxx +63 -0
  198. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.cxx +87 -0
  199. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.hxx +78 -0
  200. data/ext/couchbase/couchbase/operations/management/analytics_link_utils.hxx +37 -0
  201. data/ext/couchbase/couchbase/operations/management/analytics_problem.hxx +30 -0
  202. data/ext/couchbase/couchbase/operations/management/bucket.hxx +25 -0
  203. data/ext/couchbase/couchbase/operations/management/bucket_create.cxx +171 -0
  204. data/ext/couchbase/couchbase/operations/management/bucket_create.hxx +52 -0
  205. data/ext/couchbase/couchbase/operations/management/bucket_describe.cxx +67 -0
  206. data/ext/couchbase/couchbase/operations/management/bucket_describe.hxx +61 -0
  207. data/ext/couchbase/couchbase/operations/management/bucket_drop.cxx +52 -0
  208. data/ext/couchbase/couchbase/operations/management/bucket_drop.hxx +49 -0
  209. data/ext/couchbase/couchbase/operations/management/bucket_flush.cxx +59 -0
  210. data/ext/couchbase/couchbase/operations/management/bucket_flush.hxx +49 -0
  211. data/ext/couchbase/couchbase/operations/management/bucket_get.cxx +59 -0
  212. data/ext/couchbase/couchbase/operations/management/bucket_get.hxx +51 -0
  213. data/ext/couchbase/couchbase/operations/management/bucket_get_all.cxx +59 -0
  214. data/ext/couchbase/couchbase/operations/management/bucket_get_all.hxx +49 -0
  215. data/ext/couchbase/couchbase/operations/management/bucket_update.cxx +130 -0
  216. data/ext/couchbase/couchbase/operations/management/bucket_update.hxx +52 -0
  217. data/ext/couchbase/couchbase/operations/management/cluster_describe.cxx +90 -0
  218. data/ext/couchbase/couchbase/operations/management/cluster_describe.hxx +72 -0
  219. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.cxx +44 -0
  220. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.hxx +48 -0
  221. data/ext/couchbase/couchbase/operations/management/collection_create.cxx +83 -0
  222. data/ext/couchbase/couchbase/operations/management/collection_create.hxx +53 -0
  223. data/ext/couchbase/couchbase/operations/management/collection_drop.cxx +73 -0
  224. data/ext/couchbase/couchbase/operations/management/collection_drop.hxx +52 -0
  225. data/ext/couchbase/couchbase/operations/management/collections.hxx +25 -0
  226. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.cxx +40 -0
  227. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.hxx +53 -0
  228. data/ext/couchbase/couchbase/operations/management/error_utils.cxx +265 -0
  229. data/ext/couchbase/couchbase/operations/management/error_utils.hxx +48 -0
  230. data/ext/couchbase/couchbase/operations/management/eventing.hxx +28 -0
  231. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.cxx +56 -0
  232. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.hxx +52 -0
  233. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.cxx +57 -0
  234. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.hxx +52 -0
  235. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.cxx +64 -0
  236. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.hxx +51 -0
  237. data/ext/couchbase/couchbase/operations/management/eventing_get_function.cxx +56 -0
  238. data/ext/couchbase/couchbase/operations/management/eventing_get_function.hxx +53 -0
  239. data/ext/couchbase/couchbase/operations/management/eventing_get_status.cxx +56 -0
  240. data/ext/couchbase/couchbase/operations/management/eventing_get_status.hxx +53 -0
  241. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.cxx +56 -0
  242. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.hxx +52 -0
  243. data/ext/couchbase/couchbase/operations/management/eventing_problem.hxx +31 -0
  244. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.cxx +56 -0
  245. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.hxx +52 -0
  246. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.cxx +56 -0
  247. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.hxx +52 -0
  248. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.cxx +341 -0
  249. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.hxx +52 -0
  250. data/ext/couchbase/couchbase/operations/management/freeform.cxx +55 -0
  251. data/ext/couchbase/couchbase/operations/management/freeform.hxx +55 -0
  252. data/ext/couchbase/couchbase/operations/management/group_drop.cxx +51 -0
  253. data/ext/couchbase/couchbase/operations/management/group_drop.hxx +49 -0
  254. data/ext/couchbase/couchbase/operations/management/group_get.cxx +60 -0
  255. data/ext/couchbase/couchbase/operations/management/group_get.hxx +50 -0
  256. data/ext/couchbase/couchbase/operations/management/group_get_all.cxx +58 -0
  257. data/ext/couchbase/couchbase/operations/management/group_get_all.hxx +49 -0
  258. data/ext/couchbase/couchbase/operations/management/group_upsert.cxx +96 -0
  259. data/ext/couchbase/couchbase/operations/management/group_upsert.hxx +51 -0
  260. data/ext/couchbase/couchbase/operations/management/query.hxx +23 -0
  261. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.cxx +88 -0
  262. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.hxx +61 -0
  263. data/ext/couchbase/couchbase/operations/management/query_index_create.cxx +149 -0
  264. data/ext/couchbase/couchbase/operations/management/query_index_create.hxx +65 -0
  265. data/ext/couchbase/couchbase/operations/management/query_index_drop.cxx +128 -0
  266. data/ext/couchbase/couchbase/operations/management/query_index_drop.hxx +61 -0
  267. data/ext/couchbase/couchbase/operations/management/query_index_get_all.cxx +126 -0
  268. data/ext/couchbase/couchbase/operations/management/query_index_get_all.hxx +54 -0
  269. data/ext/couchbase/couchbase/operations/management/role_get_all.cxx +58 -0
  270. data/ext/couchbase/couchbase/operations/management/role_get_all.hxx +49 -0
  271. data/ext/couchbase/couchbase/operations/management/scope_create.cxx +75 -0
  272. data/ext/couchbase/couchbase/operations/management/scope_create.hxx +51 -0
  273. data/ext/couchbase/couchbase/operations/management/scope_drop.cxx +70 -0
  274. data/ext/couchbase/couchbase/operations/management/scope_drop.hxx +51 -0
  275. data/ext/couchbase/couchbase/operations/management/scope_get_all.cxx +62 -0
  276. data/ext/couchbase/couchbase/operations/management/scope_get_all.hxx +51 -0
  277. data/ext/couchbase/couchbase/operations/management/search.hxx +30 -0
  278. data/ext/couchbase/couchbase/operations/management/search_get_stats.cxx +41 -0
  279. data/ext/couchbase/couchbase/operations/management/search_get_stats.hxx +48 -0
  280. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.cxx +85 -0
  281. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.hxx +54 -0
  282. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.cxx +73 -0
  283. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.hxx +52 -0
  284. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.cxx +73 -0
  285. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.hxx +57 -0
  286. data/ext/couchbase/couchbase/operations/management/search_index_control_query.cxx +73 -0
  287. data/ext/couchbase/couchbase/operations/management/search_index_control_query.hxx +52 -0
  288. data/ext/couchbase/couchbase/operations/management/search_index_drop.cxx +72 -0
  289. data/ext/couchbase/couchbase/operations/management/search_index_drop.hxx +51 -0
  290. data/ext/couchbase/couchbase/operations/management/search_index_get.cxx +75 -0
  291. data/ext/couchbase/couchbase/operations/management/search_index_get.hxx +54 -0
  292. data/ext/couchbase/couchbase/operations/management/search_index_get_all.cxx +67 -0
  293. data/ext/couchbase/couchbase/operations/management/search_index_get_all.hxx +51 -0
  294. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.cxx +79 -0
  295. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.hxx +53 -0
  296. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.cxx +71 -0
  297. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.hxx +52 -0
  298. data/ext/couchbase/couchbase/operations/management/search_index_upsert.cxx +108 -0
  299. data/ext/couchbase/couchbase/operations/management/search_index_upsert.hxx +52 -0
  300. data/ext/couchbase/couchbase/operations/management/user.hxx +28 -0
  301. data/ext/couchbase/couchbase/operations/management/user_drop.cxx +52 -0
  302. data/ext/couchbase/couchbase/operations/management/user_drop.hxx +51 -0
  303. data/ext/couchbase/couchbase/operations/management/user_get.cxx +61 -0
  304. data/ext/couchbase/couchbase/operations/management/user_get.hxx +52 -0
  305. data/ext/couchbase/couchbase/operations/management/user_get_all.cxx +59 -0
  306. data/ext/couchbase/couchbase/operations/management/user_get_all.hxx +51 -0
  307. data/ext/couchbase/couchbase/operations/management/user_upsert.cxx +101 -0
  308. data/ext/couchbase/couchbase/operations/management/user_upsert.hxx +52 -0
  309. data/ext/couchbase/couchbase/operations/management/view.hxx +23 -0
  310. data/ext/couchbase/couchbase/operations/management/view_index_drop.cxx +46 -0
  311. data/ext/couchbase/couchbase/operations/management/view_index_drop.hxx +52 -0
  312. data/ext/couchbase/couchbase/operations/management/view_index_get.cxx +74 -0
  313. data/ext/couchbase/couchbase/operations/management/view_index_get.hxx +53 -0
  314. data/ext/couchbase/couchbase/operations/management/view_index_get_all.cxx +108 -0
  315. data/ext/couchbase/couchbase/operations/management/view_index_get_all.hxx +52 -0
  316. data/ext/couchbase/couchbase/operations/management/view_index_upsert.cxx +71 -0
  317. data/ext/couchbase/couchbase/operations/management/view_index_upsert.hxx +51 -0
  318. data/ext/couchbase/couchbase/operations/mcbp_noop.cxx +38 -0
  319. data/ext/couchbase/couchbase/operations/mcbp_noop.hxx +49 -0
  320. data/ext/couchbase/couchbase/operations.hxx +42 -0
  321. data/ext/couchbase/couchbase/origin.hxx +185 -0
  322. data/ext/couchbase/couchbase/platform/CMakeLists.txt +16 -0
  323. data/ext/couchbase/couchbase/platform/backtrace.c +189 -0
  324. data/ext/couchbase/{platform → couchbase/platform}/backtrace.h +0 -0
  325. data/ext/couchbase/couchbase/platform/base64.cc +234 -0
  326. data/ext/couchbase/{platform → couchbase/platform}/base64.h +0 -0
  327. data/ext/couchbase/couchbase/platform/dirutils.cc +123 -0
  328. data/ext/couchbase/couchbase/platform/dirutils.h +43 -0
  329. data/ext/couchbase/couchbase/platform/random.cc +120 -0
  330. data/ext/couchbase/{platform → couchbase/platform}/random.h +0 -0
  331. data/ext/couchbase/couchbase/platform/string_hex.cc +99 -0
  332. data/ext/couchbase/couchbase/platform/string_hex.h +50 -0
  333. data/ext/couchbase/couchbase/platform/terminate_handler.cc +125 -0
  334. data/ext/couchbase/{platform → couchbase/platform}/terminate_handler.h +0 -0
  335. data/ext/couchbase/couchbase/platform/uuid.cc +98 -0
  336. data/ext/couchbase/{platform → couchbase/platform}/uuid.h +0 -0
  337. data/ext/couchbase/couchbase/protocol/CMakeLists.txt +42 -0
  338. data/ext/couchbase/couchbase/protocol/client_opcode.hxx +359 -0
  339. data/ext/couchbase/couchbase/protocol/client_opcode_fmt.hxx +316 -0
  340. data/ext/couchbase/couchbase/protocol/client_request.cxx +37 -0
  341. data/ext/couchbase/couchbase/protocol/client_request.hxx +157 -0
  342. data/ext/couchbase/couchbase/protocol/client_response.cxx +74 -0
  343. data/ext/couchbase/couchbase/protocol/client_response.hxx +211 -0
  344. data/ext/couchbase/couchbase/protocol/cmd_append.cxx +82 -0
  345. data/ext/couchbase/couchbase/protocol/cmd_append.hxx +107 -0
  346. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.cxx +51 -0
  347. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.hxx +57 -0
  348. data/ext/couchbase/couchbase/protocol/cmd_decrement.cxx +112 -0
  349. data/ext/couchbase/couchbase/protocol/cmd_decrement.hxx +131 -0
  350. data/ext/couchbase/couchbase/protocol/cmd_exists.cxx +92 -0
  351. data/ext/couchbase/couchbase/protocol/cmd_exists.hxx +121 -0
  352. data/ext/couchbase/couchbase/protocol/cmd_get.cxx +63 -0
  353. data/ext/couchbase/couchbase/protocol/cmd_get.hxx +101 -0
  354. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.cxx +68 -0
  355. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.hxx +117 -0
  356. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.cxx +70 -0
  357. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.hxx +117 -0
  358. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.cxx +84 -0
  359. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.hxx +89 -0
  360. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.cxx +50 -0
  361. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.hxx +98 -0
  362. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.cxx +44 -0
  363. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.hxx +84 -0
  364. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.cxx +59 -0
  365. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.hxx +103 -0
  366. data/ext/couchbase/couchbase/protocol/cmd_get_meta.cxx +74 -0
  367. data/ext/couchbase/couchbase/protocol/cmd_get_meta.hxx +119 -0
  368. data/ext/couchbase/couchbase/protocol/cmd_hello.cxx +66 -0
  369. data/ext/couchbase/couchbase/protocol/cmd_hello.hxx +144 -0
  370. data/ext/couchbase/couchbase/protocol/cmd_increment.cxx +117 -0
  371. data/ext/couchbase/couchbase/protocol/cmd_increment.hxx +131 -0
  372. data/ext/couchbase/couchbase/protocol/cmd_info.hxx +29 -0
  373. data/ext/couchbase/couchbase/protocol/cmd_insert.cxx +92 -0
  374. data/ext/couchbase/couchbase/protocol/cmd_insert.hxx +123 -0
  375. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.cxx +109 -0
  376. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.hxx +165 -0
  377. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.cxx +174 -0
  378. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.hxx +311 -0
  379. data/ext/couchbase/couchbase/protocol/cmd_noop.cxx +36 -0
  380. data/ext/couchbase/couchbase/protocol/cmd_noop.hxx +75 -0
  381. data/ext/couchbase/couchbase/protocol/cmd_prepend.cxx +82 -0
  382. data/ext/couchbase/couchbase/protocol/cmd_prepend.hxx +102 -0
  383. data/ext/couchbase/couchbase/protocol/cmd_remove.cxx +83 -0
  384. data/ext/couchbase/couchbase/protocol/cmd_remove.hxx +93 -0
  385. data/ext/couchbase/couchbase/protocol/cmd_replace.cxx +105 -0
  386. data/ext/couchbase/couchbase/protocol/cmd_replace.hxx +130 -0
  387. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.cxx +40 -0
  388. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.hxx +97 -0
  389. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.cxx +48 -0
  390. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.hxx +82 -0
  391. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.cxx +40 -0
  392. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.hxx +97 -0
  393. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.cxx +36 -0
  394. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.hxx +82 -0
  395. data/ext/couchbase/couchbase/protocol/cmd_touch.cxx +57 -0
  396. data/ext/couchbase/couchbase/protocol/cmd_touch.hxx +84 -0
  397. data/ext/couchbase/couchbase/protocol/cmd_unlock.cxx +48 -0
  398. data/ext/couchbase/couchbase/protocol/cmd_unlock.hxx +81 -0
  399. data/ext/couchbase/couchbase/protocol/cmd_upsert.cxx +104 -0
  400. data/ext/couchbase/couchbase/protocol/cmd_upsert.hxx +125 -0
  401. data/ext/couchbase/{protocol → couchbase/protocol}/datatype.hxx +0 -0
  402. data/ext/couchbase/couchbase/protocol/durability_level.hxx +59 -0
  403. data/ext/couchbase/couchbase/protocol/durability_level_fmt.hxx +52 -0
  404. data/ext/couchbase/{protocol → couchbase/protocol}/enhanced_error_info.hxx +0 -0
  405. data/ext/couchbase/couchbase/protocol/enhanced_error_info_fmt.hxx +44 -0
  406. data/ext/couchbase/couchbase/protocol/frame_info_id.hxx +142 -0
  407. data/ext/couchbase/couchbase/protocol/frame_info_id_fmt.hxx +79 -0
  408. data/ext/couchbase/couchbase/protocol/hello_feature.hxx +186 -0
  409. data/ext/couchbase/couchbase/protocol/hello_feature_fmt.hxx +106 -0
  410. data/ext/couchbase/couchbase/protocol/magic.hxx +53 -0
  411. data/ext/couchbase/couchbase/protocol/magic_fmt.hxx +58 -0
  412. data/ext/couchbase/couchbase/protocol/server_opcode.hxx +39 -0
  413. data/ext/couchbase/couchbase/protocol/server_opcode_fmt.hxx +46 -0
  414. data/ext/couchbase/couchbase/protocol/server_request.hxx +121 -0
  415. data/ext/couchbase/couchbase/protocol/status.cxx +187 -0
  416. data/ext/couchbase/couchbase/protocol/status.hxx +180 -0
  417. data/ext/couchbase/couchbase/protocol/status_fmt.hxx +241 -0
  418. data/ext/couchbase/couchbase/query_profile_mode.hxx +27 -0
  419. data/ext/couchbase/couchbase/query_scan_consistency.hxx +23 -0
  420. data/ext/couchbase/couchbase/sasl/CMakeLists.txt +16 -0
  421. data/ext/couchbase/couchbase/sasl/client.cc +50 -0
  422. data/ext/couchbase/couchbase/sasl/client.h +128 -0
  423. data/ext/couchbase/couchbase/sasl/context.cc +34 -0
  424. data/ext/couchbase/{cbsasl → couchbase/sasl}/context.h +0 -0
  425. data/ext/couchbase/couchbase/sasl/error.h +28 -0
  426. data/ext/couchbase/couchbase/sasl/error_fmt.h +70 -0
  427. data/ext/couchbase/couchbase/sasl/mechanism.cc +45 -0
  428. data/ext/couchbase/couchbase/sasl/mechanism.h +52 -0
  429. data/ext/couchbase/couchbase/sasl/plain/plain.cc +39 -0
  430. data/ext/couchbase/couchbase/sasl/plain/plain.h +54 -0
  431. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.cc +372 -0
  432. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.h +184 -0
  433. data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.cc +82 -0
  434. data/ext/couchbase/{cbsasl → couchbase/sasl}/scram-sha/stringutils.h +0 -0
  435. data/ext/couchbase/couchbase/search_highlight_style.hxx +23 -0
  436. data/ext/couchbase/couchbase/search_scan_consistency.hxx +23 -0
  437. data/ext/couchbase/couchbase/service_type.hxx +31 -0
  438. data/ext/couchbase/couchbase/service_type_fmt.hxx +61 -0
  439. data/ext/couchbase/couchbase/timeout_defaults.hxx +42 -0
  440. data/ext/couchbase/couchbase/topology/CMakeLists.txt +9 -0
  441. data/ext/couchbase/couchbase/topology/capabilities.hxx +43 -0
  442. data/ext/couchbase/couchbase/topology/capabilities_fmt.hxx +106 -0
  443. data/ext/couchbase/couchbase/topology/collections_manifest.hxx +42 -0
  444. data/ext/couchbase/couchbase/topology/collections_manifest_fmt.hxx +52 -0
  445. data/ext/couchbase/couchbase/topology/collections_manifest_json.hxx +50 -0
  446. data/ext/couchbase/couchbase/topology/configuration.cxx +223 -0
  447. data/ext/couchbase/couchbase/topology/configuration.hxx +120 -0
  448. data/ext/couchbase/couchbase/topology/configuration_fmt.hxx +166 -0
  449. data/ext/couchbase/couchbase/topology/configuration_json.hxx +259 -0
  450. data/ext/couchbase/couchbase/topology/error_map.hxx +149 -0
  451. data/ext/couchbase/couchbase/topology/error_map_fmt.hxx +94 -0
  452. data/ext/couchbase/couchbase/topology/error_map_json.hxx +88 -0
  453. data/ext/couchbase/couchbase/tracing/CMakeLists.txt +9 -0
  454. data/ext/couchbase/couchbase/tracing/constants.hxx +274 -0
  455. data/ext/couchbase/couchbase/tracing/noop_tracer.hxx +55 -0
  456. data/ext/couchbase/couchbase/tracing/request_tracer.hxx +79 -0
  457. data/ext/couchbase/couchbase/tracing/threshold_logging_options.hxx +68 -0
  458. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.cxx +422 -0
  459. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.hxx +49 -0
  460. data/ext/couchbase/couchbase/utils/CMakeLists.txt +17 -0
  461. data/ext/couchbase/couchbase/utils/byteswap.cxx +45 -0
  462. data/ext/couchbase/couchbase/utils/byteswap.hxx +49 -0
  463. data/ext/couchbase/couchbase/utils/connection_string.cxx +420 -0
  464. data/ext/couchbase/couchbase/utils/connection_string.hxx +76 -0
  465. data/ext/couchbase/{utils → couchbase/utils}/crc32.hxx +0 -0
  466. data/ext/couchbase/couchbase/utils/duration_parser.cxx +193 -0
  467. data/ext/couchbase/couchbase/utils/duration_parser.hxx +45 -0
  468. data/ext/couchbase/couchbase/utils/join_strings.hxx +65 -0
  469. data/ext/couchbase/couchbase/utils/json.cxx +71 -0
  470. data/ext/couchbase/couchbase/utils/json.hxx +37 -0
  471. data/ext/couchbase/couchbase/utils/json_stream_control.hxx +32 -0
  472. data/ext/couchbase/couchbase/utils/json_streaming_lexer.cxx +394 -0
  473. data/ext/couchbase/couchbase/utils/json_streaming_lexer.hxx +58 -0
  474. data/ext/couchbase/couchbase/utils/movable_function.hxx +110 -0
  475. data/ext/couchbase/{utils → couchbase/utils}/name_codec.hxx +0 -0
  476. data/ext/couchbase/couchbase/utils/unsigned_leb128.hxx +181 -0
  477. data/ext/couchbase/couchbase/utils/url_codec.cxx +404 -0
  478. data/ext/couchbase/couchbase/utils/url_codec.hxx +72 -0
  479. data/ext/couchbase/couchbase/view_scan_consistency.hxx +27 -0
  480. data/ext/couchbase/couchbase/view_sort_order.hxx +23 -0
  481. data/ext/couchbase/test/CMakeLists.txt +22 -0
  482. data/ext/couchbase/test/benchmark_helper_integration.hxx +22 -0
  483. data/ext/couchbase/test/benchmark_integration_get.cxx +45 -0
  484. data/ext/couchbase/test/test_helper.hxx +25 -0
  485. data/ext/couchbase/test/test_helper_integration.hxx +24 -0
  486. data/ext/couchbase/test/test_integration_arithmetic.cxx +112 -0
  487. data/ext/couchbase/test/test_integration_binary_operations.cxx +115 -0
  488. data/ext/couchbase/test/test_integration_collections.cxx +176 -0
  489. data/ext/couchbase/test/test_integration_connect.cxx +148 -0
  490. data/ext/couchbase/test/test_integration_crud.cxx +726 -0
  491. data/ext/couchbase/test/test_integration_diagnostics.cxx +365 -0
  492. data/ext/couchbase/test/test_integration_durability.cxx +82 -0
  493. data/ext/couchbase/test/test_integration_management.cxx +2657 -0
  494. data/ext/couchbase/test/test_integration_query.cxx +407 -0
  495. data/ext/couchbase/test/test_integration_subdoc.cxx +893 -0
  496. data/ext/couchbase/test/test_unit_connection_string.cxx +379 -0
  497. data/ext/couchbase/test/test_unit_json_streaming_lexer.cxx +115 -0
  498. data/ext/couchbase/test/test_unit_jsonsl.cxx +511 -0
  499. data/ext/couchbase/test/test_unit_utils.cxx +127 -0
  500. data/ext/couchbase/third_party/asio/asio/include/asio/any_io_executor.hpp +301 -0
  501. data/ext/couchbase/third_party/asio/asio/include/asio/associated_allocator.hpp +177 -0
  502. data/ext/couchbase/third_party/asio/asio/include/asio/associated_cancellation_slot.hpp +177 -0
  503. data/ext/couchbase/third_party/asio/asio/include/asio/associated_executor.hpp +222 -0
  504. data/ext/couchbase/third_party/asio/asio/include/asio/associator.hpp +35 -0
  505. data/ext/couchbase/third_party/asio/asio/include/asio/async_result.hpp +1271 -0
  506. data/ext/couchbase/third_party/asio/asio/include/asio/awaitable.hpp +133 -0
  507. data/ext/couchbase/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +1303 -0
  508. data/ext/couchbase/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +703 -0
  509. data/ext/couchbase/third_party/asio/asio/include/asio/basic_file.hpp +829 -0
  510. data/ext/couchbase/third_party/asio/asio/include/asio/basic_io_object.hpp +290 -0
  511. data/ext/couchbase/third_party/asio/asio/include/asio/basic_random_access_file.hpp +677 -0
  512. data/ext/couchbase/third_party/asio/asio/include/asio/basic_raw_socket.hpp +1294 -0
  513. data/ext/couchbase/third_party/asio/asio/include/asio/basic_readable_pipe.hpp +523 -0
  514. data/ext/couchbase/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +798 -0
  515. data/ext/couchbase/third_party/asio/asio/include/asio/basic_serial_port.hpp +907 -0
  516. data/ext/couchbase/third_party/asio/asio/include/asio/basic_signal_set.hpp +576 -0
  517. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket.hpp +1923 -0
  518. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +2606 -0
  519. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +407 -0
  520. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +687 -0
  521. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_file.hpp +730 -0
  522. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_socket.hpp +1120 -0
  523. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf.hpp +452 -0
  524. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +36 -0
  525. data/ext/couchbase/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +821 -0
  526. data/ext/couchbase/third_party/asio/asio/include/asio/basic_writable_pipe.hpp +519 -0
  527. data/ext/couchbase/third_party/asio/asio/include/asio/bind_cancellation_slot.hpp +721 -0
  528. data/ext/couchbase/third_party/asio/asio/include/asio/bind_executor.hpp +754 -0
  529. data/ext/couchbase/third_party/asio/asio/include/asio/buffer.hpp +2496 -0
  530. data/ext/couchbase/third_party/asio/asio/include/asio/buffer_registration.hpp +327 -0
  531. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream.hpp +253 -0
  532. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +25 -0
  533. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream.hpp +279 -0
  534. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +25 -0
  535. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream.hpp +245 -0
  536. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +25 -0
  537. data/ext/couchbase/third_party/asio/asio/include/asio/buffers_iterator.hpp +521 -0
  538. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_signal.hpp +305 -0
  539. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_state.hpp +235 -0
  540. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_type.hpp +174 -0
  541. data/ext/couchbase/third_party/asio/asio/include/asio/co_spawn.hpp +499 -0
  542. data/ext/couchbase/third_party/asio/asio/include/asio/completion_condition.hpp +218 -0
  543. data/ext/couchbase/third_party/asio/asio/include/asio/compose.hpp +136 -0
  544. data/ext/couchbase/third_party/asio/asio/include/asio/connect.hpp +1136 -0
  545. data/ext/couchbase/third_party/asio/asio/include/asio/connect_pipe.hpp +83 -0
  546. data/ext/couchbase/third_party/asio/asio/include/asio/coroutine.hpp +328 -0
  547. data/ext/couchbase/third_party/asio/asio/include/asio/deadline_timer.hpp +38 -0
  548. data/ext/couchbase/third_party/asio/asio/include/asio/defer.hpp +130 -0
  549. data/ext/couchbase/third_party/asio/asio/include/asio/detached.hpp +112 -0
  550. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array.hpp +38 -0
  551. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array_fwd.hpp +34 -0
  552. data/ext/couchbase/third_party/asio/asio/include/asio/detail/assert.hpp +32 -0
  553. data/ext/couchbase/third_party/asio/asio/include/asio/detail/atomic_count.hpp +67 -0
  554. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +163 -0
  555. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +69 -0
  556. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bind_handler.hpp +1071 -0
  557. data/ext/couchbase/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  558. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +66 -0
  559. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +841 -0
  560. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +126 -0
  561. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  562. data/ext/couchbase/third_party/asio/asio/include/asio/detail/call_stack.hpp +125 -0
  563. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono.hpp +66 -0
  564. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +190 -0
  565. data/ext/couchbase/third_party/asio/asio/include/asio/detail/completion_handler.hpp +88 -0
  566. data/ext/couchbase/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +94 -0
  567. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +120 -0
  568. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +149 -0
  569. data/ext/couchbase/third_party/asio/asio/include/asio/detail/config.hpp +1998 -0
  570. data/ext/couchbase/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +451 -0
  571. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstddef.hpp +31 -0
  572. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstdint.hpp +62 -0
  573. data/ext/couchbase/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +34 -0
  574. data/ext/couchbase/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +335 -0
  575. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dependent_type.hpp +36 -0
  576. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +179 -0
  577. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +148 -0
  578. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +148 -0
  579. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +230 -0
  580. data/ext/couchbase/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +278 -0
  581. data/ext/couchbase/third_party/asio/asio/include/asio/detail/event.hpp +48 -0
  582. data/ext/couchbase/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +83 -0
  583. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_function.hpp +204 -0
  584. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_op.hpp +84 -0
  585. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +39 -0
  586. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fenced_block.hpp +80 -0
  587. data/ext/couchbase/third_party/asio/asio/include/asio/detail/functional.hpp +44 -0
  588. data/ext/couchbase/third_party/asio/asio/include/asio/detail/future.hpp +33 -0
  589. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  590. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  591. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  592. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  593. data/ext/couchbase/third_party/asio/asio/include/asio/detail/global.hpp +52 -0
  594. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +288 -0
  595. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +45 -0
  596. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +80 -0
  597. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +264 -0
  598. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +559 -0
  599. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_work.hpp +525 -0
  600. data/ext/couchbase/third_party/asio/asio/include/asio/detail/hash_map.hpp +331 -0
  601. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +118 -0
  602. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +933 -0
  603. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +111 -0
  604. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +460 -0
  605. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +109 -0
  606. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +817 -0
  607. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +171 -0
  608. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +396 -0
  609. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +202 -0
  610. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +131 -0
  611. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.hpp +112 -0
  612. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.ipp +879 -0
  613. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +249 -0
  614. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +113 -0
  615. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +599 -0
  616. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +74 -0
  617. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +129 -0
  618. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +63 -0
  619. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +46 -0
  620. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +149 -0
  621. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +84 -0
  622. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +46 -0
  623. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +225 -0
  624. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +302 -0
  625. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +158 -0
  626. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +674 -0
  627. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +124 -0
  628. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +357 -0
  629. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +94 -0
  630. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +197 -0
  631. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +746 -0
  632. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +3964 -0
  633. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +185 -0
  634. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +354 -0
  635. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +158 -0
  636. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +87 -0
  637. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +202 -0
  638. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/thread_context.ipp +35 -0
  639. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +66 -0
  640. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +97 -0
  641. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +101 -0
  642. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +76 -0
  643. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +250 -0
  644. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +525 -0
  645. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +120 -0
  646. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +608 -0
  647. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +192 -0
  648. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +821 -0
  649. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +84 -0
  650. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +448 -0
  651. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +136 -0
  652. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +150 -0
  653. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +57 -0
  654. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +626 -0
  655. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +92 -0
  656. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +121 -0
  657. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +82 -0
  658. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_control.hpp +84 -0
  659. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +172 -0
  660. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +190 -0
  661. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +185 -0
  662. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +661 -0
  663. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +184 -0
  664. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +180 -0
  665. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_file_service.hpp +251 -0
  666. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +111 -0
  667. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_operation.hpp +84 -0
  668. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_service.hpp +318 -0
  669. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +277 -0
  670. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +137 -0
  671. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +200 -0
  672. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +201 -0
  673. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +187 -0
  674. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +186 -0
  675. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +189 -0
  676. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service.hpp +613 -0
  677. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +663 -0
  678. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_wait_op.hpp +109 -0
  679. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +338 -0
  680. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_executor.hpp +126 -0
  681. data/ext/couchbase/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +70 -0
  682. data/ext/couchbase/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +254 -0
  683. data/ext/{third_party → couchbase/third_party}/asio/asio/include/asio/detail/limits.hpp +0 -0
  684. data/ext/couchbase/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +59 -0
  685. data/ext/couchbase/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +62 -0
  686. data/ext/couchbase/third_party/asio/asio/include/asio/detail/memory.hpp +133 -0
  687. data/ext/couchbase/third_party/asio/asio/include/asio/detail/mutex.hpp +48 -0
  688. data/ext/couchbase/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +54 -0
  689. data/ext/couchbase/third_party/asio/asio/include/asio/detail/noncopyable.hpp +43 -0
  690. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_event.hpp +106 -0
  691. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +47 -0
  692. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_global.hpp +59 -0
  693. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_mutex.hpp +60 -0
  694. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_reactor.hpp +83 -0
  695. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +69 -0
  696. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +519 -0
  697. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +60 -0
  698. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_thread.hpp +67 -0
  699. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +68 -0
  700. data/ext/couchbase/third_party/asio/asio/include/asio/detail/object_pool.hpp +171 -0
  701. data/ext/couchbase/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +214 -0
  702. data/ext/couchbase/third_party/asio/asio/include/asio/detail/op_queue.hpp +162 -0
  703. data/ext/couchbase/third_party/asio/asio/include/asio/detail/operation.hpp +38 -0
  704. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +89 -0
  705. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pop_options.hpp +153 -0
  706. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_event.hpp +175 -0
  707. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +118 -0
  708. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_global.hpp +80 -0
  709. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +76 -0
  710. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_serial_port_service.hpp +248 -0
  711. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +85 -0
  712. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +64 -0
  713. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_thread.hpp +109 -0
  714. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +79 -0
  715. data/ext/couchbase/third_party/asio/asio/include/asio/detail/push_options.hpp +219 -0
  716. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +511 -0
  717. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +98 -0
  718. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +242 -0
  719. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +123 -0
  720. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +159 -0
  721. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +164 -0
  722. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +145 -0
  723. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +162 -0
  724. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +156 -0
  725. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +607 -0
  726. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +654 -0
  727. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +98 -0
  728. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor.hpp +54 -0
  729. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op.hpp +71 -0
  730. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +212 -0
  731. data/ext/couchbase/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +105 -0
  732. data/ext/couchbase/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +44 -0
  733. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +140 -0
  734. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_op.hpp +45 -0
  735. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +150 -0
  736. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service.hpp +145 -0
  737. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +158 -0
  738. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler.hpp +241 -0
  739. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +78 -0
  740. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_task.hpp +49 -0
  741. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +40 -0
  742. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +101 -0
  743. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +87 -0
  744. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +46 -0
  745. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_reactor.hpp +252 -0
  746. data/ext/couchbase/third_party/asio/asio/include/asio/detail/service_registry.hpp +164 -0
  747. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +44 -0
  748. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_handler.hpp +90 -0
  749. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_init.hpp +47 -0
  750. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_op.hpp +49 -0
  751. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +241 -0
  752. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_holder.hpp +98 -0
  753. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_ops.hpp +383 -0
  754. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_option.hpp +316 -0
  755. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +91 -0
  756. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_types.hpp +417 -0
  757. data/ext/couchbase/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +62 -0
  758. data/ext/couchbase/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  759. data/ext/couchbase/third_party/asio/asio/include/asio/detail/static_mutex.hpp +52 -0
  760. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_event.hpp +188 -0
  761. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +62 -0
  762. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_global.hpp +70 -0
  763. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_mutex.hpp +73 -0
  764. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +81 -0
  765. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_thread.hpp +71 -0
  766. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +173 -0
  767. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_service.hpp +144 -0
  768. data/ext/couchbase/third_party/asio/asio/include/asio/detail/string_view.hpp +47 -0
  769. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread.hpp +60 -0
  770. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_context.hpp +51 -0
  771. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_group.hpp +99 -0
  772. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +260 -0
  773. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_error.hpp +53 -0
  774. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_exception.hpp +51 -0
  775. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue.hpp +389 -0
  776. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +68 -0
  777. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +103 -0
  778. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +66 -0
  779. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +37 -0
  780. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +42 -0
  781. data/ext/couchbase/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +69 -0
  782. data/ext/couchbase/third_party/asio/asio/include/asio/detail/type_traits.hpp +156 -0
  783. data/ext/couchbase/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +294 -0
  784. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_handler.hpp +90 -0
  785. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_op.hpp +49 -0
  786. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_event.hpp +164 -0
  787. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +149 -0
  788. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +90 -0
  789. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_global.hpp +71 -0
  790. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_file_service.hpp +280 -0
  791. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +117 -0
  792. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +403 -0
  793. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +110 -0
  794. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +345 -0
  795. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +127 -0
  796. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +96 -0
  797. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +96 -0
  798. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +171 -0
  799. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +232 -0
  800. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +338 -0
  801. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +135 -0
  802. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +124 -0
  803. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +133 -0
  804. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +125 -0
  805. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +118 -0
  806. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +659 -0
  807. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +832 -0
  808. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +34 -0
  809. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +128 -0
  810. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_mutex.hpp +78 -0
  811. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +195 -0
  812. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +74 -0
  813. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_thread.hpp +147 -0
  814. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +79 -0
  815. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +124 -0
  816. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wince_thread.hpp +124 -0
  817. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +305 -0
  818. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +65 -0
  819. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +125 -0
  820. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +212 -0
  821. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +98 -0
  822. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +119 -0
  823. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +110 -0
  824. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +250 -0
  825. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +362 -0
  826. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +147 -0
  827. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +106 -0
  828. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winsock_init.hpp +128 -0
  829. data/ext/couchbase/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +151 -0
  830. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +327 -0
  831. data/ext/couchbase/third_party/asio/asio/include/asio/dispatch.hpp +121 -0
  832. data/ext/couchbase/third_party/asio/asio/include/asio/error.hpp +356 -0
  833. data/ext/couchbase/third_party/asio/asio/include/asio/error_code.hpp +202 -0
  834. data/ext/couchbase/third_party/asio/asio/include/asio/execution/allocator.hpp +337 -0
  835. data/ext/couchbase/third_party/asio/asio/include/asio/execution/any_executor.hpp +2351 -0
  836. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  837. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking.hpp +1551 -0
  838. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1212 -0
  839. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +397 -0
  840. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1215 -0
  841. data/ext/couchbase/third_party/asio/asio/include/asio/execution/connect.hpp +489 -0
  842. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context.hpp +233 -0
  843. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context_as.hpp +221 -0
  844. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  845. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  846. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  847. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  848. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  849. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  850. data/ext/couchbase/third_party/asio/asio/include/asio/execution/execute.hpp +283 -0
  851. data/ext/couchbase/third_party/asio/asio/include/asio/execution/executor.hpp +252 -0
  852. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  853. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  854. data/ext/couchbase/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  855. data/ext/couchbase/third_party/asio/asio/include/asio/execution/mapping.hpp +1116 -0
  856. data/ext/couchbase/third_party/asio/asio/include/asio/execution/occupancy.hpp +226 -0
  857. data/ext/couchbase/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  858. data/ext/couchbase/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +867 -0
  859. data/ext/couchbase/third_party/asio/asio/include/asio/execution/prefer_only.hpp +331 -0
  860. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  861. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  862. data/ext/couchbase/third_party/asio/asio/include/asio/execution/relationship.hpp +865 -0
  863. data/ext/couchbase/third_party/asio/asio/include/asio/execution/schedule.hpp +287 -0
  864. data/ext/couchbase/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  865. data/ext/couchbase/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  866. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_done.hpp +250 -0
  867. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_error.hpp +250 -0
  868. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_value.hpp +483 -0
  869. data/ext/couchbase/third_party/asio/asio/include/asio/execution/start.hpp +247 -0
  870. data/ext/couchbase/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  871. data/ext/couchbase/third_party/asio/asio/include/asio/execution.hpp +48 -0
  872. data/ext/couchbase/third_party/asio/asio/include/asio/execution_context.hpp +412 -0
  873. data/ext/couchbase/third_party/asio/asio/include/asio/executor.hpp +347 -0
  874. data/ext/couchbase/third_party/asio/asio/include/asio/executor_work_guard.hpp +302 -0
  875. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/append.hpp +71 -0
  876. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_single.hpp +135 -0
  877. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_tuple.hpp +131 -0
  878. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/awaitable_operators.hpp +536 -0
  879. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_channel.hpp +415 -0
  880. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +424 -0
  881. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/cancellation_condition.hpp +155 -0
  882. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel.hpp +70 -0
  883. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_error.hpp +84 -0
  884. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_traits.hpp +231 -0
  885. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/co_spawn.hpp +191 -0
  886. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/concurrent_channel.hpp +70 -0
  887. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro.hpp +263 -0
  888. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro_traits.hpp +228 -0
  889. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/deferred.hpp +605 -0
  890. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_handler.hpp +70 -0
  891. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_message.hpp +122 -0
  892. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_operation.hpp +199 -0
  893. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_payload.hpp +93 -0
  894. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +112 -0
  895. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +131 -0
  896. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +140 -0
  897. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_service.hpp +497 -0
  898. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/completion_handler_erasure.hpp +158 -0
  899. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +118 -0
  900. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/has_signature.hpp +54 -0
  901. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +611 -0
  902. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/partial_promise.hpp +176 -0
  903. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/append.hpp +217 -0
  904. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_single.hpp +229 -0
  905. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_tuple.hpp +246 -0
  906. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/channel_error.ipp +61 -0
  907. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/coro.hpp +1204 -0
  908. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/deferred.hpp +104 -0
  909. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/parallel_group.hpp +432 -0
  910. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/prepend.hpp +217 -0
  911. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/promise.hpp +102 -0
  912. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/use_coro.hpp +267 -0
  913. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/parallel_group.hpp +215 -0
  914. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/prepend.hpp +71 -0
  915. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/promise.hpp +610 -0
  916. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/use_coro.hpp +169 -0
  917. data/ext/couchbase/third_party/asio/asio/include/asio/file_base.hpp +160 -0
  918. data/ext/couchbase/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +193 -0
  919. data/ext/couchbase/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +123 -0
  920. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +133 -0
  921. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +110 -0
  922. data/ext/couchbase/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +121 -0
  923. data/ext/couchbase/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +122 -0
  924. data/ext/couchbase/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +127 -0
  925. data/ext/couchbase/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +104 -0
  926. data/ext/couchbase/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +54 -0
  927. data/ext/couchbase/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +111 -0
  928. data/ext/couchbase/third_party/asio/asio/include/asio/high_resolution_timer.hpp +44 -0
  929. data/ext/couchbase/third_party/asio/asio/include/asio/impl/any_io_executor.ipp +124 -0
  930. data/ext/couchbase/third_party/asio/asio/include/asio/impl/awaitable.hpp +760 -0
  931. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +498 -0
  932. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +478 -0
  933. data/ext/couchbase/third_party/asio/asio/include/asio/impl/cancellation_signal.ipp +96 -0
  934. data/ext/couchbase/third_party/asio/asio/include/asio/impl/co_spawn.hpp +346 -0
  935. data/ext/couchbase/third_party/asio/asio/include/asio/impl/compose.hpp +707 -0
  936. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect.hpp +905 -0
  937. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.hpp +73 -0
  938. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.ipp +149 -0
  939. data/ext/couchbase/third_party/asio/asio/include/asio/impl/defer.hpp +256 -0
  940. data/ext/couchbase/third_party/asio/asio/include/asio/impl/detached.hpp +130 -0
  941. data/ext/couchbase/third_party/asio/asio/include/asio/impl/dispatch.hpp +251 -0
  942. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error.ipp +128 -0
  943. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error_code.ipp +206 -0
  944. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.hpp +109 -0
  945. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.ipp +82 -0
  946. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.hpp +300 -0
  947. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.ipp +43 -0
  948. data/ext/couchbase/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +62 -0
  949. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.hpp +444 -0
  950. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.ipp +175 -0
  951. data/ext/couchbase/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  952. data/ext/couchbase/third_party/asio/asio/include/asio/impl/post.hpp +256 -0
  953. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read.hpp +1199 -0
  954. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_at.hpp +733 -0
  955. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_until.hpp +3315 -0
  956. data/ext/couchbase/third_party/asio/asio/include/asio/impl/redirect_error.hpp +609 -0
  957. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +59 -0
  958. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +554 -0
  959. data/ext/couchbase/third_party/asio/asio/include/asio/impl/spawn.hpp +517 -0
  960. data/ext/couchbase/third_party/asio/asio/include/asio/impl/src.hpp +95 -0
  961. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.hpp +34 -0
  962. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.ipp +92 -0
  963. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_executor.hpp +185 -0
  964. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.hpp +354 -0
  965. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.ipp +141 -0
  966. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +291 -0
  967. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_future.hpp +1028 -0
  968. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write.hpp +1100 -0
  969. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write_at.hpp +644 -0
  970. data/ext/couchbase/third_party/asio/asio/include/asio/io_context.hpp +1560 -0
  971. data/ext/couchbase/third_party/asio/asio/include/asio/io_context_strand.hpp +376 -0
  972. data/ext/couchbase/third_party/asio/asio/include/asio/io_service.hpp +33 -0
  973. data/ext/couchbase/third_party/asio/asio/include/asio/io_service_strand.hpp +20 -0
  974. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address.hpp +290 -0
  975. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4.hpp +355 -0
  976. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +162 -0
  977. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +134 -0
  978. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6.hpp +382 -0
  979. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +183 -0
  980. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +129 -0
  981. data/ext/couchbase/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +53 -0
  982. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +291 -0
  983. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +1076 -0
  984. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +113 -0
  985. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +192 -0
  986. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +244 -0
  987. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +311 -0
  988. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +141 -0
  989. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +199 -0
  990. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +566 -0
  991. data/ext/couchbase/third_party/asio/asio/include/asio/ip/host_name.hpp +42 -0
  992. data/ext/couchbase/third_party/asio/asio/include/asio/ip/icmp.hpp +115 -0
  993. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.hpp +67 -0
  994. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.ipp +239 -0
  995. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +67 -0
  996. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +210 -0
  997. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +67 -0
  998. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +350 -0
  999. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +43 -0
  1000. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +54 -0
  1001. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +54 -0
  1002. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +216 -0
  1003. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +53 -0
  1004. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +185 -0
  1005. data/ext/couchbase/third_party/asio/asio/include/asio/ip/multicast.hpp +191 -0
  1006. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v4.hpp +261 -0
  1007. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v6.hpp +235 -0
  1008. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_base.hpp +129 -0
  1009. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +43 -0
  1010. data/ext/couchbase/third_party/asio/asio/include/asio/ip/tcp.hpp +155 -0
  1011. data/ext/couchbase/third_party/asio/asio/include/asio/ip/udp.hpp +111 -0
  1012. data/ext/couchbase/third_party/asio/asio/include/asio/ip/unicast.hpp +70 -0
  1013. data/ext/couchbase/third_party/asio/asio/include/asio/ip/v6_only.hpp +69 -0
  1014. data/ext/couchbase/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  1015. data/ext/couchbase/third_party/asio/asio/include/asio/is_executor.hpp +46 -0
  1016. data/ext/couchbase/third_party/asio/asio/include/asio/is_read_buffered.hpp +59 -0
  1017. data/ext/couchbase/third_party/asio/asio/include/asio/is_write_buffered.hpp +59 -0
  1018. data/ext/couchbase/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +247 -0
  1019. data/ext/couchbase/third_party/asio/asio/include/asio/local/connect_pair.hpp +101 -0
  1020. data/ext/couchbase/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +80 -0
  1021. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +139 -0
  1022. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +131 -0
  1023. data/ext/couchbase/third_party/asio/asio/include/asio/local/stream_protocol.hpp +90 -0
  1024. data/ext/couchbase/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  1025. data/ext/couchbase/third_party/asio/asio/include/asio/packaged_task.hpp +126 -0
  1026. data/ext/couchbase/third_party/asio/asio/include/asio/placeholders.hpp +151 -0
  1027. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +720 -0
  1028. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +501 -0
  1029. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor.hpp +37 -0
  1030. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +90 -0
  1031. data/ext/couchbase/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +37 -0
  1032. data/ext/couchbase/third_party/asio/asio/include/asio/post.hpp +126 -0
  1033. data/ext/couchbase/third_party/asio/asio/include/asio/prefer.hpp +734 -0
  1034. data/ext/couchbase/third_party/asio/asio/include/asio/query.hpp +324 -0
  1035. data/ext/couchbase/third_party/asio/asio/include/asio/random_access_file.hpp +35 -0
  1036. data/ext/couchbase/third_party/asio/asio/include/asio/read.hpp +1388 -0
  1037. data/ext/couchbase/third_party/asio/asio/include/asio/read_at.hpp +738 -0
  1038. data/ext/couchbase/third_party/asio/asio/include/asio/read_until.hpp +3031 -0
  1039. data/ext/couchbase/third_party/asio/asio/include/asio/readable_pipe.hpp +35 -0
  1040. data/ext/couchbase/third_party/asio/asio/include/asio/redirect_error.hpp +66 -0
  1041. data/ext/couchbase/third_party/asio/asio/include/asio/registered_buffer.hpp +356 -0
  1042. data/ext/couchbase/third_party/asio/asio/include/asio/require.hpp +571 -0
  1043. data/ext/couchbase/third_party/asio/asio/include/asio/require_concept.hpp +352 -0
  1044. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port.hpp +36 -0
  1045. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port_base.hpp +167 -0
  1046. data/ext/couchbase/third_party/asio/asio/include/asio/signal_set.hpp +28 -0
  1047. data/ext/couchbase/third_party/asio/asio/include/asio/socket_base.hpp +559 -0
  1048. data/ext/couchbase/third_party/asio/asio/include/asio/spawn.hpp +344 -0
  1049. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context.hpp +761 -0
  1050. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context_base.hpp +209 -0
  1051. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +119 -0
  1052. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +170 -0
  1053. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +67 -0
  1054. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +363 -0
  1055. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +165 -0
  1056. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/io.hpp +425 -0
  1057. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +101 -0
  1058. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +34 -0
  1059. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +66 -0
  1060. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +72 -0
  1061. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +69 -0
  1062. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +206 -0
  1063. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +62 -0
  1064. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +76 -0
  1065. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/error.hpp +125 -0
  1066. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +90 -0
  1067. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.hpp +67 -0
  1068. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.ipp +1245 -0
  1069. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/error.ipp +102 -0
  1070. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +73 -0
  1071. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +164 -0
  1072. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/src.hpp +29 -0
  1073. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +98 -0
  1074. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream.hpp +972 -0
  1075. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream_base.hpp +52 -0
  1076. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_context.hpp +67 -0
  1077. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +63 -0
  1078. data/ext/couchbase/third_party/asio/asio/include/asio/ssl.hpp +28 -0
  1079. data/ext/couchbase/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  1080. data/ext/couchbase/third_party/asio/asio/include/asio/steady_timer.hpp +42 -0
  1081. data/ext/couchbase/third_party/asio/asio/include/asio/strand.hpp +569 -0
  1082. data/ext/couchbase/third_party/asio/asio/include/asio/stream_file.hpp +35 -0
  1083. data/ext/couchbase/third_party/asio/asio/include/asio/streambuf.hpp +33 -0
  1084. data/ext/couchbase/third_party/asio/asio/include/asio/system_context.hpp +90 -0
  1085. data/ext/couchbase/third_party/asio/asio/include/asio/system_error.hpp +131 -0
  1086. data/ext/couchbase/third_party/asio/asio/include/asio/system_executor.hpp +684 -0
  1087. data/ext/couchbase/third_party/asio/asio/include/asio/system_timer.hpp +42 -0
  1088. data/ext/couchbase/third_party/asio/asio/include/asio/this_coro.hpp +280 -0
  1089. data/ext/couchbase/third_party/asio/asio/include/asio/thread.hpp +92 -0
  1090. data/ext/couchbase/third_party/asio/asio/include/asio/thread_pool.hpp +1140 -0
  1091. data/ext/couchbase/third_party/asio/asio/include/asio/time_traits.hpp +86 -0
  1092. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  1093. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  1094. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  1095. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  1096. data/ext/couchbase/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +104 -0
  1097. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  1098. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  1099. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  1100. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  1101. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  1102. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  1103. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  1104. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  1105. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  1106. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  1107. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  1108. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  1109. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  1110. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  1111. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  1112. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  1113. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  1114. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  1115. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  1116. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  1117. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  1118. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  1119. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  1120. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +124 -0
  1121. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  1122. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  1123. data/ext/couchbase/third_party/asio/asio/include/asio/ts/buffer.hpp +24 -0
  1124. data/ext/couchbase/third_party/asio/asio/include/asio/ts/executor.hpp +35 -0
  1125. data/ext/couchbase/third_party/asio/asio/include/asio/ts/internet.hpp +40 -0
  1126. data/ext/couchbase/third_party/asio/asio/include/asio/ts/io_context.hpp +20 -0
  1127. data/ext/couchbase/third_party/asio/asio/include/asio/ts/net.hpp +26 -0
  1128. data/ext/couchbase/third_party/asio/asio/include/asio/ts/netfwd.hpp +254 -0
  1129. data/ext/couchbase/third_party/asio/asio/include/asio/ts/socket.hpp +27 -0
  1130. data/ext/couchbase/third_party/asio/asio/include/asio/ts/timer.hpp +26 -0
  1131. data/ext/couchbase/third_party/asio/asio/include/asio/unyield.hpp +21 -0
  1132. data/ext/couchbase/third_party/asio/asio/include/asio/use_awaitable.hpp +166 -0
  1133. data/ext/couchbase/third_party/asio/asio/include/asio/use_future.hpp +160 -0
  1134. data/ext/couchbase/third_party/asio/asio/include/asio/uses_executor.hpp +71 -0
  1135. data/ext/couchbase/third_party/asio/asio/include/asio/version.hpp +23 -0
  1136. data/ext/couchbase/third_party/asio/asio/include/asio/wait_traits.hpp +56 -0
  1137. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +435 -0
  1138. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +361 -0
  1139. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +510 -0
  1140. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +494 -0
  1141. data/ext/couchbase/third_party/asio/asio/include/asio/windows/object_handle.hpp +38 -0
  1142. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +39 -0
  1143. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +145 -0
  1144. data/ext/couchbase/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +37 -0
  1145. data/ext/couchbase/third_party/asio/asio/include/asio/windows/stream_handle.hpp +37 -0
  1146. data/ext/couchbase/third_party/asio/asio/include/asio/writable_pipe.hpp +35 -0
  1147. data/ext/couchbase/third_party/asio/asio/include/asio/write.hpp +1346 -0
  1148. data/ext/couchbase/third_party/asio/asio/include/asio/write_at.hpp +746 -0
  1149. data/ext/couchbase/third_party/asio/asio/include/asio/yield.hpp +23 -0
  1150. data/ext/couchbase/third_party/asio/asio/include/asio.hpp +201 -0
  1151. data/ext/couchbase/third_party/fmt/CMakeLists.txt +410 -0
  1152. data/ext/couchbase/third_party/fmt/ChangeLog.rst +4364 -0
  1153. data/ext/{third_party/spdlog/include/spdlog/fmt/bundled → couchbase/third_party/fmt}/LICENSE.rst +0 -0
  1154. data/ext/couchbase/third_party/fmt/README.rst +528 -0
  1155. data/ext/couchbase/third_party/fmt/include/fmt/args.h +244 -0
  1156. data/ext/couchbase/third_party/fmt/include/fmt/chrono.h +2055 -0
  1157. data/ext/couchbase/third_party/fmt/include/fmt/color.h +638 -0
  1158. data/ext/couchbase/third_party/fmt/include/fmt/compile.h +642 -0
  1159. data/ext/couchbase/third_party/fmt/include/fmt/core.h +3217 -0
  1160. data/ext/couchbase/third_party/fmt/include/fmt/format-inl.h +2637 -0
  1161. data/ext/couchbase/third_party/fmt/include/fmt/format.h +3120 -0
  1162. data/ext/couchbase/third_party/fmt/include/fmt/locale.h +2 -0
  1163. data/ext/couchbase/third_party/fmt/include/fmt/os.h +527 -0
  1164. data/ext/couchbase/third_party/fmt/include/fmt/ostream.h +135 -0
  1165. data/ext/couchbase/third_party/fmt/include/fmt/printf.h +657 -0
  1166. data/ext/couchbase/third_party/fmt/include/fmt/ranges.h +742 -0
  1167. data/ext/couchbase/third_party/fmt/include/fmt/xchar.h +236 -0
  1168. data/ext/couchbase/third_party/fmt/src/fmt.cc +99 -0
  1169. data/ext/couchbase/third_party/fmt/src/format.cc +124 -0
  1170. data/ext/couchbase/third_party/fmt/src/os.cc +361 -0
  1171. data/ext/couchbase/third_party/fmt/support/cmake/FindSetEnv.cmake +7 -0
  1172. data/ext/couchbase/third_party/fmt/support/cmake/JoinPaths.cmake +26 -0
  1173. data/ext/couchbase/third_party/fmt/support/cmake/cxx14.cmake +70 -0
  1174. data/ext/couchbase/third_party/fmt/support/cmake/fmt-config.cmake.in +4 -0
  1175. data/ext/couchbase/third_party/fmt/support/cmake/fmt.pc.in +11 -0
  1176. data/ext/couchbase/third_party/gsl/CMakeLists.txt +61 -0
  1177. data/ext/{third_party → couchbase/third_party}/gsl/LICENSE +0 -0
  1178. data/ext/{third_party → couchbase/third_party}/gsl/ThirdPartyNotices.txt +0 -0
  1179. data/ext/couchbase/third_party/gsl/cmake/guidelineSupportLibrary.cmake +116 -0
  1180. data/ext/couchbase/third_party/gsl/include/CMakeLists.txt +20 -0
  1181. data/ext/couchbase/third_party/gsl/include/gsl/algorithm +63 -0
  1182. data/ext/couchbase/third_party/gsl/include/gsl/assert +136 -0
  1183. data/ext/couchbase/third_party/gsl/include/gsl/byte +213 -0
  1184. data/ext/couchbase/third_party/gsl/include/gsl/gsl +32 -0
  1185. data/ext/couchbase/third_party/gsl/include/gsl/gsl_algorithm +4 -0
  1186. data/ext/couchbase/third_party/gsl/include/gsl/gsl_assert +3 -0
  1187. data/ext/couchbase/third_party/gsl/include/gsl/gsl_byte +3 -0
  1188. data/ext/couchbase/third_party/gsl/include/gsl/gsl_narrow +3 -0
  1189. data/ext/couchbase/third_party/gsl/include/gsl/gsl_util +3 -0
  1190. data/ext/couchbase/third_party/gsl/include/gsl/narrow +66 -0
  1191. data/ext/couchbase/third_party/gsl/include/gsl/pointers +323 -0
  1192. data/ext/couchbase/third_party/gsl/include/gsl/span +821 -0
  1193. data/ext/couchbase/third_party/gsl/include/gsl/span_ext +212 -0
  1194. data/ext/couchbase/third_party/gsl/include/gsl/string_span +767 -0
  1195. data/ext/couchbase/third_party/gsl/include/gsl/util +157 -0
  1196. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/CMakeLists.txt +0 -0
  1197. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/COPYING.txt +0 -0
  1198. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/LICENSE.txt +0 -0
  1199. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/config.cmake.in +0 -0
  1200. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/CMakeLists.txt +0 -0
  1201. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_atomic.h +0 -0
  1202. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_encoding.c +0 -0
  1203. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_encoding.h +0 -0
  1204. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_endian.h +0 -0
  1205. data/ext/couchbase/third_party/hdr_histogram_c/src/hdr_histogram.c +1211 -0
  1206. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_histogram.h +0 -0
  1207. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_histogram_log.c +0 -0
  1208. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_histogram_log.h +0 -0
  1209. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_histogram_log_no_op.c +0 -0
  1210. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_interval_recorder.c +0 -0
  1211. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_interval_recorder.h +0 -0
  1212. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_malloc.h +0 -0
  1213. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_tests.h +0 -0
  1214. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_thread.c +0 -0
  1215. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_thread.h +0 -0
  1216. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_time.c +0 -0
  1217. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_time.h +0 -0
  1218. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_writer_reader_phaser.c +0 -0
  1219. data/ext/{third_party → couchbase/third_party}/hdr_histogram_c/src/hdr_writer_reader_phaser.h +0 -0
  1220. data/ext/{third_party → couchbase/third_party}/http_parser/LICENSE-MIT +0 -0
  1221. data/ext/{third_party → couchbase/third_party}/http_parser/http_parser.c +0 -0
  1222. data/ext/{third_party → couchbase/third_party}/http_parser/http_parser.h +0 -0
  1223. data/ext/couchbase/third_party/json/CMakeLists.txt +90 -0
  1224. data/ext/couchbase/third_party/json/LICENSE +21 -0
  1225. data/ext/{third_party → couchbase/third_party}/json/LICENSE.double-conversion +0 -0
  1226. data/ext/{third_party → couchbase/third_party}/json/LICENSE.itoa +0 -0
  1227. data/ext/{third_party → couchbase/third_party}/json/LICENSE.ryu +0 -0
  1228. data/ext/couchbase/third_party/json/external/PEGTL/.cmake/pegtl-config.cmake.in +4 -0
  1229. data/ext/couchbase/third_party/json/external/PEGTL/.cmake/test_filesystem.cpp.in +22 -0
  1230. data/ext/couchbase/third_party/json/external/PEGTL/CMakeLists.txt +155 -0
  1231. data/ext/couchbase/third_party/json/external/PEGTL/LICENSE +21 -0
  1232. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/apply_mode.hpp +19 -0
  1233. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/argv_input.hpp +49 -0
  1234. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/ascii.hpp +54 -0
  1235. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/buffer_input.hpp +226 -0
  1236. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action.hpp +38 -0
  1237. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_state.hpp +71 -0
  1238. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_states.hpp +62 -0
  1239. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_control.hpp +36 -0
  1240. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_state.hpp +69 -0
  1241. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_states.hpp +61 -0
  1242. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/config.hpp +11 -0
  1243. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/abnf.hpp +35 -0
  1244. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/add_state.hpp +69 -0
  1245. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/alphabet.hpp +67 -0
  1246. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze.hpp +189 -0
  1247. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze_traits.hpp +277 -0
  1248. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/check_bytes.hpp +55 -0
  1249. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/control_action.hpp +81 -0
  1250. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/coverage.hpp +151 -0
  1251. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/forward.hpp +16 -0
  1252. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/function.hpp +52 -0
  1253. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/http.hpp +277 -0
  1254. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/internal.hpp +98 -0
  1255. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf16.hpp +196 -0
  1256. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf32.hpp +196 -0
  1257. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf8.hpp +103 -0
  1258. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/if_then.hpp +56 -0
  1259. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/instantiate.hpp +38 -0
  1260. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/integer.hpp +468 -0
  1261. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian.hpp +77 -0
  1262. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_gcc.hpp +198 -0
  1263. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_win.hpp +102 -0
  1264. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint.hpp +54 -0
  1265. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint8.hpp +33 -0
  1266. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint.hpp +45 -0
  1267. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint8.hpp +32 -0
  1268. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf16.hpp +54 -0
  1269. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf32.hpp +43 -0
  1270. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/read_uint.hpp +77 -0
  1271. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  1272. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/vector_stack_guard.hpp +45 -0
  1273. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/iri.hpp +106 -0
  1274. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json.hpp +91 -0
  1275. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp +33 -0
  1276. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_bytes.hpp +88 -0
  1277. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_depth.hpp +83 -0
  1278. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree.hpp +443 -0
  1279. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree_to_dot.hpp +111 -0
  1280. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/peg.hpp +121 -0
  1281. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/predicates.hpp +126 -0
  1282. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print.hpp +75 -0
  1283. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print_coverage.hpp +53 -0
  1284. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/proto3.hpp +142 -0
  1285. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/raw_string.hpp +232 -0
  1286. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_first_state.hpp +72 -0
  1287. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_last_states.hpp +121 -0
  1288. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_one_min_max.hpp +100 -0
  1289. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_string.hpp +43 -0
  1290. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/separated_seq.hpp +45 -0
  1291. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/shuffle_states.hpp +193 -0
  1292. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/state_control.hpp +122 -0
  1293. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/to_string.hpp +38 -0
  1294. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/trace.hpp +227 -0
  1295. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint16.hpp +62 -0
  1296. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint32.hpp +62 -0
  1297. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint64.hpp +63 -0
  1298. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint8.hpp +36 -0
  1299. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/unescape.hpp +214 -0
  1300. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uri.hpp +111 -0
  1301. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf16.hpp +57 -0
  1302. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf32.hpp +57 -0
  1303. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/cstream_input.hpp +32 -0
  1304. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/demangle.hpp +175 -0
  1305. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/disable_action.hpp +35 -0
  1306. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input.hpp +37 -0
  1307. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_failure.hpp +39 -0
  1308. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_success.hpp +39 -0
  1309. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/enable_action.hpp +35 -0
  1310. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol.hpp +37 -0
  1311. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol_pair.hpp +18 -0
  1312. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/file_input.hpp +44 -0
  1313. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action.hpp +54 -0
  1314. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action_input.hpp +106 -0
  1315. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/any.hpp +77 -0
  1316. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply.hpp +53 -0
  1317. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0.hpp +51 -0
  1318. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0_single.hpp +34 -0
  1319. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply_single.hpp +34 -0
  1320. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/at.hpp +55 -0
  1321. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bof.hpp +32 -0
  1322. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bol.hpp +31 -0
  1323. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump.hpp +45 -0
  1324. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump_help.hpp +26 -0
  1325. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bytes.hpp +43 -0
  1326. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/control.hpp +54 -0
  1327. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_crlf_eol.hpp +32 -0
  1328. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_eol.hpp +32 -0
  1329. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/crlf_eol.hpp +32 -0
  1330. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstream_reader.hpp +58 -0
  1331. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstring_reader.hpp +40 -0
  1332. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_false.hpp +16 -0
  1333. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_true.hpp +16 -0
  1334. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/disable.hpp +54 -0
  1335. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/discard.hpp +34 -0
  1336. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable.hpp +54 -0
  1337. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable_control.hpp +25 -0
  1338. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eof.hpp +32 -0
  1339. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eol.hpp +32 -0
  1340. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eolf.hpp +33 -0
  1341. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/failure.hpp +32 -0
  1342. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_posix.hpp +159 -0
  1343. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_win32.hpp +243 -0
  1344. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_reader.hpp +152 -0
  1345. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/filesystem.hpp +64 -0
  1346. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply.hpp +21 -0
  1347. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply0.hpp +21 -0
  1348. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_match.hpp +40 -0
  1349. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_unwind.hpp +21 -0
  1350. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/identifier.hpp +22 -0
  1351. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_apply.hpp +54 -0
  1352. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must.hpp +52 -0
  1353. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must_else.hpp +26 -0
  1354. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_then_else.hpp +51 -0
  1355. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/input_pair.hpp +29 -0
  1356. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istream_reader.hpp +50 -0
  1357. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istring.hpp +81 -0
  1358. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/iterator.hpp +49 -0
  1359. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_crlf_eol.hpp +37 -0
  1360. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_eol.hpp +32 -0
  1361. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list.hpp +19 -0
  1362. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_must.hpp +25 -0
  1363. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail.hpp +22 -0
  1364. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail_pad.hpp +22 -0
  1365. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/marker.hpp +80 -0
  1366. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/minus.hpp +21 -0
  1367. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply.hpp +28 -0
  1368. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply0.hpp +26 -0
  1369. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/must.hpp +69 -0
  1370. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/not_at.hpp +55 -0
  1371. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/one.hpp +66 -0
  1372. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/opt.hpp +57 -0
  1373. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad.hpp +19 -0
  1374. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad_opt.hpp +20 -0
  1375. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/path_to_string.hpp +28 -0
  1376. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_char.hpp +32 -0
  1377. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_utf8.hpp +89 -0
  1378. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pegtl_string.hpp +90 -0
  1379. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/plus.hpp +60 -0
  1380. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/raise.hpp +49 -0
  1381. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/range.hpp +60 -0
  1382. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/ranges.hpp +90 -0
  1383. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rematch.hpp +72 -0
  1384. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep.hpp +67 -0
  1385. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min.hpp +20 -0
  1386. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min_max.hpp +81 -0
  1387. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_opt.hpp +61 -0
  1388. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/require.hpp +42 -0
  1389. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/result_on_found.hpp +19 -0
  1390. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rules.hpp +64 -0
  1391. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/seq.hpp +58 -0
  1392. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/sor.hpp +67 -0
  1393. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star.hpp +52 -0
  1394. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star_must.hpp +24 -0
  1395. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/state.hpp +75 -0
  1396. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/string.hpp +67 -0
  1397. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/success.hpp +32 -0
  1398. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/try_catch_type.hpp +69 -0
  1399. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/until.hpp +88 -0
  1400. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/istream_input.hpp +32 -0
  1401. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/match.hpp +173 -0
  1402. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/memory_input.hpp +378 -0
  1403. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/mmap_input.hpp +79 -0
  1404. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/must_if.hpp +69 -0
  1405. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/normal.hpp +99 -0
  1406. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/nothing.hpp +19 -0
  1407. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse.hpp +72 -0
  1408. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse_error.hpp +119 -0
  1409. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/position.hpp +98 -0
  1410. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/read_input.hpp +54 -0
  1411. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply.hpp +16 -0
  1412. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply0.hpp +16 -0
  1413. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rewind_mode.hpp +20 -0
  1414. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rules.hpp +71 -0
  1415. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/string_input.hpp +64 -0
  1416. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/tracking_mode.hpp +19 -0
  1417. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/type_list.hpp +46 -0
  1418. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/utf8.hpp +28 -0
  1419. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/version.hpp +13 -0
  1420. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/visit.hpp +80 -0
  1421. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl.hpp +48 -0
  1422. data/ext/couchbase/third_party/json/include/tao/json/basic_value.hpp +962 -0
  1423. data/ext/couchbase/third_party/json/include/tao/json/binary.hpp +103 -0
  1424. data/ext/couchbase/third_party/json/include/tao/json/binary_view.hpp +31 -0
  1425. data/ext/couchbase/third_party/json/include/tao/json/binding/constant.hpp +231 -0
  1426. data/ext/couchbase/third_party/json/include/tao/json/binding/element.hpp +71 -0
  1427. data/ext/couchbase/third_party/json/include/tao/json/binding/element2.hpp +35 -0
  1428. data/ext/couchbase/third_party/json/include/tao/json/binding/factory.hpp +253 -0
  1429. data/ext/couchbase/third_party/json/include/tao/json/binding/for_nothing_value.hpp +17 -0
  1430. data/ext/couchbase/third_party/json/include/tao/json/binding/for_unknown_key.hpp +17 -0
  1431. data/ext/couchbase/third_party/json/include/tao/json/binding/inherit.hpp +14 -0
  1432. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/array.hpp +105 -0
  1433. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/elementr.hpp +134 -0
  1434. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/elementw.hpp +251 -0
  1435. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/inherit.hpp +45 -0
  1436. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/object.hpp +269 -0
  1437. data/ext/couchbase/third_party/json/include/tao/json/binding/internal/type_key.hpp +54 -0
  1438. data/ext/couchbase/third_party/json/include/tao/json/binding/member.hpp +47 -0
  1439. data/ext/couchbase/third_party/json/include/tao/json/binding/member_kind.hpp +17 -0
  1440. data/ext/couchbase/third_party/json/include/tao/json/binding/versions.hpp +130 -0
  1441. data/ext/couchbase/third_party/json/include/tao/json/binding.hpp +74 -0
  1442. data/ext/couchbase/third_party/json/include/tao/json/cbor/consume_file.hpp +34 -0
  1443. data/ext/couchbase/third_party/json/include/tao/json/cbor/consume_string.hpp +32 -0
  1444. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_binary.hpp +44 -0
  1445. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_file.hpp +27 -0
  1446. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_input.hpp +43 -0
  1447. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/from_string.hpp +37 -0
  1448. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/to_stream.hpp +161 -0
  1449. data/ext/couchbase/third_party/json/include/tao/json/cbor/events/to_string.hpp +37 -0
  1450. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  1451. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_file.hpp +33 -0
  1452. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_input.hpp +33 -0
  1453. data/ext/couchbase/third_party/json/include/tao/json/cbor/from_string.hpp +32 -0
  1454. data/ext/couchbase/third_party/json/include/tao/json/cbor/internal/grammar.hpp +424 -0
  1455. data/ext/couchbase/third_party/json/include/tao/json/cbor/internal/major.hpp +28 -0
  1456. data/ext/couchbase/third_party/json/include/tao/json/cbor/parts_parser.hpp +395 -0
  1457. data/ext/couchbase/third_party/json/include/tao/json/cbor/to_stream.hpp +27 -0
  1458. data/ext/couchbase/third_party/json/include/tao/json/cbor/to_string.hpp +29 -0
  1459. data/ext/couchbase/third_party/json/include/tao/json/cbor.hpp +19 -0
  1460. data/ext/couchbase/third_party/json/include/tao/json/consume.hpp +43 -0
  1461. data/ext/couchbase/third_party/json/include/tao/json/consume_file.hpp +33 -0
  1462. data/ext/couchbase/third_party/json/include/tao/json/consume_string.hpp +31 -0
  1463. data/ext/couchbase/third_party/json/include/tao/json/contrib/array_traits.hpp +43 -0
  1464. data/ext/couchbase/third_party/json/include/tao/json/contrib/deque_traits.hpp +41 -0
  1465. data/ext/couchbase/third_party/json/include/tao/json/contrib/diff.hpp +106 -0
  1466. data/ext/couchbase/third_party/json/include/tao/json/contrib/get.hpp +152 -0
  1467. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +92 -0
  1468. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +76 -0
  1469. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +105 -0
  1470. data/ext/couchbase/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +36 -0
  1471. data/ext/couchbase/third_party/json/include/tao/json/contrib/list_traits.hpp +41 -0
  1472. data/ext/couchbase/third_party/json/include/tao/json/contrib/map_traits.hpp +43 -0
  1473. data/ext/couchbase/third_party/json/include/tao/json/contrib/multimap_traits.hpp +43 -0
  1474. data/ext/couchbase/third_party/json/include/tao/json/contrib/multiset_traits.hpp +41 -0
  1475. data/ext/couchbase/third_party/json/include/tao/json/contrib/pair_traits.hpp +21 -0
  1476. data/ext/couchbase/third_party/json/include/tao/json/contrib/patch.hpp +117 -0
  1477. data/ext/{third_party → couchbase/third_party}/json/include/tao/json/contrib/pointer_traits.hpp +0 -0
  1478. data/ext/couchbase/third_party/json/include/tao/json/contrib/position.hpp +166 -0
  1479. data/ext/couchbase/third_party/json/include/tao/json/contrib/reference.hpp +113 -0
  1480. data/ext/couchbase/third_party/json/include/tao/json/contrib/schema.hpp +1874 -0
  1481. data/ext/couchbase/third_party/json/include/tao/json/contrib/set_traits.hpp +41 -0
  1482. data/ext/couchbase/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +98 -0
  1483. data/ext/couchbase/third_party/json/include/tao/json/contrib/traits.hpp +128 -0
  1484. data/ext/couchbase/third_party/json/include/tao/json/contrib/tuple_traits.hpp +51 -0
  1485. data/ext/couchbase/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +97 -0
  1486. data/ext/couchbase/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +43 -0
  1487. data/ext/couchbase/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +41 -0
  1488. data/ext/couchbase/third_party/json/include/tao/json/contrib/variant_traits.hpp +73 -0
  1489. data/ext/couchbase/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +45 -0
  1490. data/ext/couchbase/third_party/json/include/tao/json/contrib/vector_traits.hpp +51 -0
  1491. data/ext/couchbase/third_party/json/include/tao/json/events/apply.hpp +20 -0
  1492. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_base64.hpp +26 -0
  1493. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_base64url.hpp +28 -0
  1494. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_exception.hpp +27 -0
  1495. data/ext/couchbase/third_party/json/include/tao/json/events/binary_to_hex.hpp +26 -0
  1496. data/ext/couchbase/third_party/json/include/tao/json/events/compare.hpp +255 -0
  1497. data/ext/couchbase/third_party/json/include/tao/json/events/debug.hpp +145 -0
  1498. data/ext/couchbase/third_party/json/include/tao/json/events/discard.hpp +43 -0
  1499. data/ext/couchbase/third_party/json/include/tao/json/events/from_file.hpp +28 -0
  1500. data/ext/couchbase/third_party/json/include/tao/json/events/from_input.hpp +45 -0
  1501. data/ext/couchbase/third_party/json/include/tao/json/events/from_stream.hpp +33 -0
  1502. data/ext/couchbase/third_party/json/include/tao/json/events/from_string.hpp +38 -0
  1503. data/ext/couchbase/third_party/json/include/tao/json/events/from_value.hpp +205 -0
  1504. data/ext/couchbase/third_party/json/include/tao/json/events/hash.hpp +174 -0
  1505. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +50 -0
  1506. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +49 -0
  1507. data/ext/couchbase/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +48 -0
  1508. data/ext/couchbase/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +62 -0
  1509. data/ext/couchbase/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +57 -0
  1510. data/ext/couchbase/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +82 -0
  1511. data/ext/couchbase/third_party/json/include/tao/json/events/limit_value_count.hpp +46 -0
  1512. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +31 -0
  1513. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_null.hpp +32 -0
  1514. data/ext/couchbase/third_party/json/include/tao/json/events/non_finite_to_string.hpp +40 -0
  1515. data/ext/couchbase/third_party/json/include/tao/json/events/prefer_signed.hpp +32 -0
  1516. data/ext/couchbase/third_party/json/include/tao/json/events/prefer_unsigned.hpp +32 -0
  1517. data/ext/couchbase/third_party/json/include/tao/json/events/produce.hpp +120 -0
  1518. data/ext/couchbase/third_party/json/include/tao/json/events/ref.hpp +114 -0
  1519. data/ext/couchbase/third_party/json/include/tao/json/events/statistics.hpp +112 -0
  1520. data/ext/couchbase/third_party/json/include/tao/json/events/tee.hpp +386 -0
  1521. data/ext/couchbase/third_party/json/include/tao/json/events/to_pretty_stream.hpp +172 -0
  1522. data/ext/couchbase/third_party/json/include/tao/json/events/to_stream.hpp +142 -0
  1523. data/ext/couchbase/third_party/json/include/tao/json/events/to_string.hpp +39 -0
  1524. data/ext/couchbase/third_party/json/include/tao/json/events/to_value.hpp +137 -0
  1525. data/ext/couchbase/third_party/json/include/tao/json/events/transformer.hpp +70 -0
  1526. data/ext/couchbase/third_party/json/include/tao/json/events/validate_event_order.hpp +415 -0
  1527. data/ext/couchbase/third_party/json/include/tao/json/events/validate_keys.hpp +52 -0
  1528. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_base.hpp +192 -0
  1529. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_ref.hpp +179 -0
  1530. data/ext/couchbase/third_party/json/include/tao/json/events/virtual_wrap.hpp +166 -0
  1531. data/ext/couchbase/third_party/json/include/tao/json/events.hpp +52 -0
  1532. data/ext/couchbase/third_party/json/include/tao/json/external/double.hpp +1306 -0
  1533. data/ext/couchbase/third_party/json/include/tao/json/external/itoa.hpp +151 -0
  1534. data/ext/couchbase/third_party/json/include/tao/json/external/ryu.hpp +1216 -0
  1535. data/ext/couchbase/third_party/json/include/tao/json/forward.hpp +44 -0
  1536. data/ext/couchbase/third_party/json/include/tao/json/from_file.hpp +32 -0
  1537. data/ext/couchbase/third_party/json/include/tao/json/from_input.hpp +32 -0
  1538. data/ext/couchbase/third_party/json/include/tao/json/from_stream.hpp +45 -0
  1539. data/ext/couchbase/third_party/json/include/tao/json/from_string.hpp +41 -0
  1540. data/ext/couchbase/third_party/json/include/tao/json/internal/action.hpp +271 -0
  1541. data/ext/couchbase/third_party/json/include/tao/json/internal/base64.hpp +55 -0
  1542. data/ext/couchbase/third_party/json/include/tao/json/internal/base64url.hpp +53 -0
  1543. data/ext/couchbase/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  1544. data/ext/couchbase/third_party/json/include/tao/json/internal/endian.hpp +60 -0
  1545. data/ext/couchbase/third_party/json/include/tao/json/internal/endian_gcc.hpp +198 -0
  1546. data/ext/couchbase/third_party/json/include/tao/json/internal/endian_win.hpp +103 -0
  1547. data/ext/couchbase/third_party/json/include/tao/json/internal/errors.hpp +86 -0
  1548. data/ext/couchbase/third_party/json/include/tao/json/internal/escape.hpp +69 -0
  1549. data/ext/couchbase/third_party/json/include/tao/json/internal/filesystem.hpp +15 -0
  1550. data/ext/couchbase/third_party/json/include/tao/json/internal/format.hpp +59 -0
  1551. data/ext/couchbase/third_party/json/include/tao/json/internal/grammar.hpp +231 -0
  1552. data/ext/couchbase/third_party/json/include/tao/json/internal/hexdump.hpp +33 -0
  1553. data/ext/couchbase/third_party/json/include/tao/json/internal/identity.hpp +22 -0
  1554. data/ext/couchbase/third_party/json/include/tao/json/internal/number_state.hpp +81 -0
  1555. data/ext/couchbase/third_party/json/include/tao/json/internal/number_traits.hpp +267 -0
  1556. data/ext/couchbase/third_party/json/include/tao/json/internal/pair.hpp +42 -0
  1557. data/ext/couchbase/third_party/json/include/tao/json/internal/parse_util.hpp +113 -0
  1558. data/ext/couchbase/third_party/json/include/tao/json/internal/sha256.hpp +218 -0
  1559. data/ext/couchbase/third_party/json/include/tao/json/internal/single.hpp +40 -0
  1560. data/ext/couchbase/third_party/json/include/tao/json/internal/string_t.hpp +35 -0
  1561. data/ext/couchbase/third_party/json/include/tao/json/internal/type_traits.hpp +97 -0
  1562. data/ext/couchbase/third_party/json/include/tao/json/internal/unescape_action.hpp +24 -0
  1563. data/ext/couchbase/third_party/json/include/tao/json/internal/uri_fragment.hpp +182 -0
  1564. data/ext/couchbase/third_party/json/include/tao/json/jaxn/consume_file.hpp +34 -0
  1565. data/ext/couchbase/third_party/json/include/tao/json/jaxn/consume_string.hpp +32 -0
  1566. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_file.hpp +29 -0
  1567. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_input.hpp +45 -0
  1568. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +33 -0
  1569. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/from_string.hpp +39 -0
  1570. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +69 -0
  1571. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +67 -0
  1572. data/ext/couchbase/third_party/json/include/tao/json/jaxn/events/to_string.hpp +39 -0
  1573. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_file.hpp +33 -0
  1574. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_input.hpp +33 -0
  1575. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_stream.hpp +48 -0
  1576. data/ext/couchbase/third_party/json/include/tao/json/jaxn/from_string.hpp +42 -0
  1577. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/action.hpp +380 -0
  1578. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +115 -0
  1579. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/errors.hpp +110 -0
  1580. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +381 -0
  1581. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/integer.hpp +255 -0
  1582. data/ext/couchbase/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +28 -0
  1583. data/ext/couchbase/third_party/json/include/tao/json/jaxn/is_identifier.hpp +23 -0
  1584. data/ext/couchbase/third_party/json/include/tao/json/jaxn/parts_parser.hpp +261 -0
  1585. data/ext/couchbase/third_party/json/include/tao/json/jaxn/to_stream.hpp +36 -0
  1586. data/ext/couchbase/third_party/json/include/tao/json/jaxn/to_string.hpp +34 -0
  1587. data/ext/couchbase/third_party/json/include/tao/json/jaxn.hpp +19 -0
  1588. data/ext/couchbase/third_party/json/include/tao/json/message_extension.hpp +49 -0
  1589. data/ext/couchbase/third_party/json/include/tao/json/msgpack/consume_file.hpp +34 -0
  1590. data/ext/couchbase/third_party/json/include/tao/json/msgpack/consume_string.hpp +32 -0
  1591. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +44 -0
  1592. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_file.hpp +27 -0
  1593. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_input.hpp +43 -0
  1594. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/from_string.hpp +37 -0
  1595. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +214 -0
  1596. data/ext/couchbase/third_party/json/include/tao/json/msgpack/events/to_string.hpp +37 -0
  1597. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  1598. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_file.hpp +33 -0
  1599. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_input.hpp +33 -0
  1600. data/ext/couchbase/third_party/json/include/tao/json/msgpack/from_string.hpp +32 -0
  1601. data/ext/couchbase/third_party/json/include/tao/json/msgpack/internal/format.hpp +57 -0
  1602. data/ext/couchbase/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +230 -0
  1603. data/ext/couchbase/third_party/json/include/tao/json/msgpack/parts_parser.hpp +315 -0
  1604. data/ext/couchbase/third_party/json/include/tao/json/msgpack/to_stream.hpp +27 -0
  1605. data/ext/couchbase/third_party/json/include/tao/json/msgpack/to_string.hpp +29 -0
  1606. data/ext/couchbase/third_party/json/include/tao/json/msgpack.hpp +19 -0
  1607. data/ext/couchbase/third_party/json/include/tao/json/operators.hpp +490 -0
  1608. data/ext/couchbase/third_party/json/include/tao/json/parts_parser.hpp +333 -0
  1609. data/ext/couchbase/third_party/json/include/tao/json/pointer.hpp +433 -0
  1610. data/ext/couchbase/third_party/json/include/tao/json/produce.hpp +61 -0
  1611. data/ext/couchbase/third_party/json/include/tao/json/self_contained.hpp +130 -0
  1612. data/ext/couchbase/third_party/json/include/tao/json/span.hpp +496 -0
  1613. data/ext/couchbase/third_party/json/include/tao/json/stream.hpp +38 -0
  1614. data/ext/couchbase/third_party/json/include/tao/json/to_stream.hpp +42 -0
  1615. data/ext/couchbase/third_party/json/include/tao/json/to_string.hpp +25 -0
  1616. data/ext/couchbase/third_party/json/include/tao/json/traits.hpp +975 -0
  1617. data/ext/couchbase/third_party/json/include/tao/json/type.hpp +112 -0
  1618. data/ext/couchbase/third_party/json/include/tao/json/ubjson/consume_file.hpp +34 -0
  1619. data/ext/couchbase/third_party/json/include/tao/json/ubjson/consume_string.hpp +32 -0
  1620. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +44 -0
  1621. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_file.hpp +27 -0
  1622. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_input.hpp +43 -0
  1623. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/from_string.hpp +37 -0
  1624. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +174 -0
  1625. data/ext/couchbase/third_party/json/include/tao/json/ubjson/events/to_string.hpp +37 -0
  1626. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  1627. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_file.hpp +33 -0
  1628. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_input.hpp +33 -0
  1629. data/ext/couchbase/third_party/json/include/tao/json/ubjson/from_string.hpp +32 -0
  1630. data/ext/couchbase/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +415 -0
  1631. data/ext/couchbase/third_party/json/include/tao/json/ubjson/internal/marker.hpp +46 -0
  1632. data/ext/couchbase/third_party/json/include/tao/json/ubjson/parts_parser.hpp +396 -0
  1633. data/ext/couchbase/third_party/json/include/tao/json/ubjson/to_stream.hpp +28 -0
  1634. data/ext/couchbase/third_party/json/include/tao/json/ubjson/to_string.hpp +30 -0
  1635. data/ext/couchbase/third_party/json/include/tao/json/ubjson.hpp +19 -0
  1636. data/ext/couchbase/third_party/json/include/tao/json/utf8.hpp +56 -0
  1637. data/ext/couchbase/third_party/json/include/tao/json/value.hpp +12 -0
  1638. data/ext/couchbase/third_party/json/include/tao/json.hpp +45 -0
  1639. data/ext/couchbase/third_party/jsonsl/LICENSE +20 -0
  1640. data/ext/couchbase/third_party/jsonsl/jsonsl.c +3059 -0
  1641. data/ext/couchbase/third_party/jsonsl/jsonsl.h +978 -0
  1642. data/ext/couchbase/third_party/snappy/CMakeLists.txt +297 -0
  1643. data/ext/{third_party → couchbase/third_party}/snappy/COPYING +0 -0
  1644. data/ext/{third_party → couchbase/third_party}/snappy/cmake/SnappyConfig.cmake.in +0 -0
  1645. data/ext/couchbase/third_party/snappy/cmake/config.h.in +62 -0
  1646. data/ext/{third_party → couchbase/third_party}/snappy/snappy-c.cc +0 -0
  1647. data/ext/{third_party → couchbase/third_party}/snappy/snappy-c.h +0 -0
  1648. data/ext/couchbase/third_party/snappy/snappy-internal.h +231 -0
  1649. data/ext/couchbase/third_party/snappy/snappy-sinksource.cc +104 -0
  1650. data/ext/{third_party → couchbase/third_party}/snappy/snappy-sinksource.h +0 -0
  1651. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.cc +42 -0
  1652. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.h +606 -0
  1653. data/ext/couchbase/third_party/snappy/snappy-stubs-public.h.in +74 -0
  1654. data/ext/couchbase/third_party/snappy/snappy.cc +1661 -0
  1655. data/ext/couchbase/third_party/snappy/snappy.h +207 -0
  1656. data/ext/couchbase/third_party/spdlog/CMakeLists.txt +320 -0
  1657. data/ext/{third_party → couchbase/third_party}/spdlog/LICENSE +0 -0
  1658. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/ide.cmake +0 -0
  1659. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/pch.h.in +0 -0
  1660. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/spdlog.pc.in +0 -0
  1661. data/ext/couchbase/third_party/spdlog/cmake/spdlogCPack.cmake +60 -0
  1662. data/ext/couchbase/third_party/spdlog/cmake/spdlogConfig.cmake.in +19 -0
  1663. data/ext/couchbase/third_party/spdlog/cmake/utils.cmake +62 -0
  1664. data/ext/{third_party → couchbase/third_party}/spdlog/cmake/version.rc.in +0 -0
  1665. data/ext/couchbase/third_party/spdlog/include/spdlog/async.h +93 -0
  1666. data/ext/couchbase/third_party/spdlog/include/spdlog/async_logger-inl.h +92 -0
  1667. data/ext/couchbase/third_party/spdlog/include/spdlog/async_logger.h +68 -0
  1668. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/cfg/argv.h +0 -0
  1669. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/cfg/env.h +0 -0
  1670. data/ext/couchbase/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +120 -0
  1671. data/ext/couchbase/third_party/spdlog/include/spdlog/cfg/helpers.h +29 -0
  1672. data/ext/couchbase/third_party/spdlog/include/spdlog/common-inl.h +78 -0
  1673. data/ext/couchbase/third_party/spdlog/include/spdlog/common.h +276 -0
  1674. data/ext/couchbase/third_party/spdlog/include/spdlog/details/backtracer-inl.h +69 -0
  1675. data/ext/couchbase/third_party/spdlog/include/spdlog/details/backtracer.h +45 -0
  1676. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/circular_q.h +0 -0
  1677. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/console_globals.h +0 -0
  1678. data/ext/couchbase/third_party/spdlog/include/spdlog/details/file_helper-inl.h +147 -0
  1679. data/ext/couchbase/third_party/spdlog/include/spdlog/details/file_helper.h +59 -0
  1680. data/ext/couchbase/third_party/spdlog/include/spdlog/details/fmt_helper.h +117 -0
  1681. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg-inl.h +37 -0
  1682. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg.h +37 -0
  1683. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +58 -0
  1684. data/ext/couchbase/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +33 -0
  1685. data/ext/couchbase/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +126 -0
  1686. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  1687. data/ext/couchbase/third_party/spdlog/include/spdlog/details/os-inl.h +599 -0
  1688. data/ext/couchbase/third_party/spdlog/include/spdlog/details/os.h +118 -0
  1689. data/ext/couchbase/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +49 -0
  1690. data/ext/couchbase/third_party/spdlog/include/spdlog/details/periodic_worker.h +40 -0
  1691. data/ext/couchbase/third_party/spdlog/include/spdlog/details/registry-inl.h +313 -0
  1692. data/ext/couchbase/third_party/spdlog/include/spdlog/details/registry.h +115 -0
  1693. data/ext/couchbase/third_party/spdlog/include/spdlog/details/synchronous_factory.h +24 -0
  1694. data/ext/couchbase/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +175 -0
  1695. data/ext/couchbase/third_party/spdlog/include/spdlog/details/tcp_client.h +146 -0
  1696. data/ext/couchbase/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +129 -0
  1697. data/ext/couchbase/third_party/spdlog/include/spdlog/details/thread_pool.h +120 -0
  1698. data/ext/couchbase/third_party/spdlog/include/spdlog/details/windows_include.h +11 -0
  1699. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +217 -0
  1700. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/args.h +232 -0
  1701. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +1308 -0
  1702. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/color.h +627 -0
  1703. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +639 -0
  1704. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/core.h +3002 -0
  1705. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +2620 -0
  1706. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/format.h +2830 -0
  1707. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +2 -0
  1708. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/os.h +515 -0
  1709. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +181 -0
  1710. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +652 -0
  1711. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +468 -0
  1712. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/bundled/xchar.h +236 -0
  1713. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  1714. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/compile.h +20 -0
  1715. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/fmt.h +27 -0
  1716. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/ostr.h +20 -0
  1717. data/ext/couchbase/third_party/spdlog/include/spdlog/fmt/xchar.h +20 -0
  1718. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/formatter.h +0 -0
  1719. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/fwd.h +0 -0
  1720. data/ext/couchbase/third_party/spdlog/include/spdlog/logger-inl.h +257 -0
  1721. data/ext/couchbase/third_party/spdlog/include/spdlog/logger.h +403 -0
  1722. data/ext/couchbase/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +1395 -0
  1723. data/ext/couchbase/third_party/spdlog/include/spdlog/pattern_formatter.h +126 -0
  1724. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/android_sink.h +119 -0
  1725. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +145 -0
  1726. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +118 -0
  1727. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +63 -0
  1728. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/base_sink.h +52 -0
  1729. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +43 -0
  1730. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +58 -0
  1731. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +242 -0
  1732. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  1733. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +94 -0
  1734. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/hourly_file_sink.h +194 -0
  1735. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/mongo_sink.h +98 -0
  1736. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +48 -0
  1737. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  1738. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  1739. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/qt_sinks.h +93 -0
  1740. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  1741. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +131 -0
  1742. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +78 -0
  1743. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/sink-inl.h +25 -0
  1744. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/sink.h +35 -0
  1745. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  1746. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +45 -0
  1747. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +139 -0
  1748. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +87 -0
  1749. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/sinks/syslog_sink.h +0 -0
  1750. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +103 -0
  1751. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +81 -0
  1752. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +276 -0
  1753. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +175 -0
  1754. data/ext/couchbase/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +85 -0
  1755. data/ext/couchbase/third_party/spdlog/include/spdlog/spdlog-inl.h +125 -0
  1756. data/ext/couchbase/third_party/spdlog/include/spdlog/spdlog.h +345 -0
  1757. data/ext/{third_party → couchbase/third_party}/spdlog/include/spdlog/stopwatch.h +0 -0
  1758. data/ext/couchbase/third_party/spdlog/include/spdlog/tweakme.h +124 -0
  1759. data/ext/couchbase/third_party/spdlog/include/spdlog/version.h +10 -0
  1760. data/ext/couchbase/third_party/spdlog/src/async.cpp +13 -0
  1761. data/ext/couchbase/third_party/spdlog/src/cfg.cpp +8 -0
  1762. data/ext/couchbase/third_party/spdlog/src/color_sinks.cpp +51 -0
  1763. data/ext/couchbase/third_party/spdlog/src/file_sinks.cpp +20 -0
  1764. data/ext/couchbase/third_party/spdlog/src/fmt.cpp +68 -0
  1765. data/ext/couchbase/third_party/spdlog/src/spdlog.cpp +26 -0
  1766. data/ext/couchbase/third_party/spdlog/src/stdout_sinks.cpp +29 -0
  1767. data/ext/couchbase.cxx +7422 -0
  1768. data/ext/ext_build_version.hxx.in +20 -0
  1769. data/ext/extconf.rb +56 -17
  1770. data/ext/revisions.rb +2 -0
  1771. data/lib/active_support/cache/couchbase_store.rb +31 -55
  1772. data/lib/couchbase/binary_collection.rb +5 -5
  1773. data/lib/couchbase/bucket.rb +2 -2
  1774. data/lib/couchbase/cluster.rb +16 -14
  1775. data/lib/couchbase/collection.rb +26 -25
  1776. data/lib/couchbase/collection_options.rb +23 -9
  1777. data/lib/couchbase/configuration.rb +1 -1
  1778. data/lib/couchbase/errors.rb +3 -0
  1779. data/lib/couchbase/management/bucket_manager.rb +8 -2
  1780. data/lib/couchbase/management/query_index_manager.rb +3 -11
  1781. data/lib/couchbase/options.rb +11 -0
  1782. data/lib/couchbase/scope.rb +17 -15
  1783. data/lib/couchbase/search_options.rb +84 -0
  1784. data/lib/couchbase/version.rb +10 -10
  1785. metadata +1773 -1355
  1786. data/ext/build_config.hxx.in +0 -22
  1787. data/ext/build_version.hxx.in +0 -30
  1788. data/ext/cmake/CompilerWarnings.cmake +0 -84
  1789. data/ext/cmake/PreventInSourceBuilds.cmake +0 -21
  1790. data/ext/cmake/Sanitizers.cmake +0 -66
  1791. data/ext/cmake/StandardProjectSettings.cmake +0 -40
  1792. data/ext/cmake/Testing.cmake +0 -50
  1793. data/ext/cmake/ThirdPartyDependencies.cmake +0 -26
  1794. data/ext/cmake/VersionInfo.cmake +0 -40
  1795. data/ext/couchbase/bucket.hxx +0 -391
  1796. data/ext/couchbase/capabilities.hxx +0 -117
  1797. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  1798. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  1799. data/ext/couchbase/cbsasl/client.cc +0 -48
  1800. data/ext/couchbase/cbsasl/client.h +0 -127
  1801. data/ext/couchbase/cbsasl/context.cc +0 -33
  1802. data/ext/couchbase/cbsasl/error.h +0 -72
  1803. data/ext/couchbase/cbsasl/mechanism.cc +0 -45
  1804. data/ext/couchbase/cbsasl/mechanism.h +0 -52
  1805. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  1806. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  1807. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -384
  1808. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  1809. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  1810. data/ext/couchbase/cluster.hxx +0 -374
  1811. data/ext/couchbase/cluster_options.hxx +0 -63
  1812. data/ext/couchbase/collections_manifest.hxx +0 -88
  1813. data/ext/couchbase/configuration.hxx +0 -673
  1814. data/ext/couchbase/couchbase.cxx +0 -8685
  1815. data/ext/couchbase/diagnostics.hxx +0 -248
  1816. data/ext/couchbase/document_id.hxx +0 -40
  1817. data/ext/couchbase/error_context/analytics.hxx +0 -46
  1818. data/ext/couchbase/error_context/http.hxx +0 -44
  1819. data/ext/couchbase/error_context/key_value.hxx +0 -47
  1820. data/ext/couchbase/error_context/query.hxx +0 -46
  1821. data/ext/couchbase/error_context/search.hxx +0 -47
  1822. data/ext/couchbase/error_context/view.hxx +0 -47
  1823. data/ext/couchbase/error_map.hxx +0 -261
  1824. data/ext/couchbase/errors.hxx +0 -714
  1825. data/ext/couchbase/io/dns_client.hxx +0 -217
  1826. data/ext/couchbase/io/dns_codec.hxx +0 -205
  1827. data/ext/couchbase/io/dns_config.hxx +0 -115
  1828. data/ext/couchbase/io/dns_message.hxx +0 -555
  1829. data/ext/couchbase/io/http_command.hxx +0 -146
  1830. data/ext/couchbase/io/http_context.hxx +0 -37
  1831. data/ext/couchbase/io/http_message.hxx +0 -47
  1832. data/ext/couchbase/io/http_parser.hxx +0 -176
  1833. data/ext/couchbase/io/http_session.hxx +0 -445
  1834. data/ext/couchbase/io/http_session_manager.hxx +0 -273
  1835. data/ext/couchbase/io/mcbp_command.hxx +0 -281
  1836. data/ext/couchbase/io/mcbp_context.hxx +0 -37
  1837. data/ext/couchbase/io/mcbp_message.hxx +0 -63
  1838. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  1839. data/ext/couchbase/io/mcbp_session.hxx +0 -1349
  1840. data/ext/couchbase/io/query_cache.hxx +0 -61
  1841. data/ext/couchbase/io/retry_context.hxx +0 -38
  1842. data/ext/couchbase/io/retry_orchestrator.hxx +0 -110
  1843. data/ext/couchbase/io/retry_reason.hxx +0 -235
  1844. data/ext/couchbase/io/retry_strategy.hxx +0 -151
  1845. data/ext/couchbase/io/streams.hxx +0 -216
  1846. data/ext/couchbase/metrics/logging_meter.hxx +0 -228
  1847. data/ext/couchbase/metrics/meter.hxx +0 -49
  1848. data/ext/couchbase/metrics/noop_meter.hxx +0 -43
  1849. data/ext/couchbase/mutation_token.hxx +0 -38
  1850. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -129
  1851. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -112
  1852. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -114
  1853. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -111
  1854. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -110
  1855. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -97
  1856. data/ext/couchbase/operations/analytics_index_create.hxx +0 -136
  1857. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -123
  1858. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -115
  1859. data/ext/couchbase/operations/analytics_link.hxx +0 -39
  1860. data/ext/couchbase/operations/analytics_link_azure_blob_external.hxx +0 -145
  1861. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -111
  1862. data/ext/couchbase/operations/analytics_link_couchbase_remote.hxx +0 -220
  1863. data/ext/couchbase/operations/analytics_link_create.hxx +0 -128
  1864. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -107
  1865. data/ext/couchbase/operations/analytics_link_drop.hxx +0 -130
  1866. data/ext/couchbase/operations/analytics_link_get_all.hxx +0 -160
  1867. data/ext/couchbase/operations/analytics_link_replace.hxx +0 -128
  1868. data/ext/couchbase/operations/analytics_link_s3_external.hxx +0 -122
  1869. data/ext/couchbase/operations/bucket_create.hxx +0 -171
  1870. data/ext/couchbase/operations/bucket_drop.hxx +0 -70
  1871. data/ext/couchbase/operations/bucket_flush.hxx +0 -69
  1872. data/ext/couchbase/operations/bucket_get.hxx +0 -78
  1873. data/ext/couchbase/operations/bucket_get_all.hxx +0 -75
  1874. data/ext/couchbase/operations/bucket_settings.hxx +0 -157
  1875. data/ext/couchbase/operations/bucket_update.hxx +0 -147
  1876. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -64
  1877. data/ext/couchbase/operations/collection_create.hxx +0 -106
  1878. data/ext/couchbase/operations/collection_drop.hxx +0 -98
  1879. data/ext/couchbase/operations/collections_manifest_get.hxx +0 -66
  1880. data/ext/couchbase/operations/design_document.hxx +0 -59
  1881. data/ext/couchbase/operations/document_analytics.hxx +0 -309
  1882. data/ext/couchbase/operations/document_append.hxx +0 -72
  1883. data/ext/couchbase/operations/document_decrement.hxx +0 -87
  1884. data/ext/couchbase/operations/document_exists.hxx +0 -83
  1885. data/ext/couchbase/operations/document_get.hxx +0 -66
  1886. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -69
  1887. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -69
  1888. data/ext/couchbase/operations/document_get_projected.hxx +0 -256
  1889. data/ext/couchbase/operations/document_increment.hxx +0 -89
  1890. data/ext/couchbase/operations/document_insert.hxx +0 -77
  1891. data/ext/couchbase/operations/document_lookup_in.hxx +0 -106
  1892. data/ext/couchbase/operations/document_mutate_in.hxx +0 -150
  1893. data/ext/couchbase/operations/document_prepend.hxx +0 -72
  1894. data/ext/couchbase/operations/document_query.hxx +0 -446
  1895. data/ext/couchbase/operations/document_remove.hxx +0 -72
  1896. data/ext/couchbase/operations/document_replace.hxx +0 -83
  1897. data/ext/couchbase/operations/document_search.hxx +0 -387
  1898. data/ext/couchbase/operations/document_touch.hxx +0 -63
  1899. data/ext/couchbase/operations/document_unlock.hxx +0 -63
  1900. data/ext/couchbase/operations/document_upsert.hxx +0 -81
  1901. data/ext/couchbase/operations/document_view.hxx +0 -245
  1902. data/ext/couchbase/operations/group_drop.hxx +0 -72
  1903. data/ext/couchbase/operations/group_get.hxx +0 -80
  1904. data/ext/couchbase/operations/group_get_all.hxx +0 -77
  1905. data/ext/couchbase/operations/group_upsert.hxx +0 -125
  1906. data/ext/couchbase/operations/http_noop.hxx +0 -78
  1907. data/ext/couchbase/operations/mcbp_noop.hxx +0 -55
  1908. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -93
  1909. data/ext/couchbase/operations/query_index_create.hxx +0 -154
  1910. data/ext/couchbase/operations/query_index_drop.hxx +0 -126
  1911. data/ext/couchbase/operations/query_index_get_all.hxx +0 -128
  1912. data/ext/couchbase/operations/rbac.hxx +0 -253
  1913. data/ext/couchbase/operations/role_get_all.hxx +0 -77
  1914. data/ext/couchbase/operations/scope_create.hxx +0 -96
  1915. data/ext/couchbase/operations/scope_drop.hxx +0 -92
  1916. data/ext/couchbase/operations/scope_get_all.hxx +0 -82
  1917. data/ext/couchbase/operations/search_get_stats.hxx +0 -62
  1918. data/ext/couchbase/operations/search_index.hxx +0 -70
  1919. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -105
  1920. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -93
  1921. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -93
  1922. data/ext/couchbase/operations/search_index_control_query.hxx +0 -93
  1923. data/ext/couchbase/operations/search_index_drop.hxx +0 -92
  1924. data/ext/couchbase/operations/search_index_get.hxx +0 -95
  1925. data/ext/couchbase/operations/search_index_get_all.hxx +0 -89
  1926. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -101
  1927. data/ext/couchbase/operations/search_index_get_stats.hxx +0 -90
  1928. data/ext/couchbase/operations/search_index_upsert.hxx +0 -121
  1929. data/ext/couchbase/operations/user_drop.hxx +0 -73
  1930. data/ext/couchbase/operations/user_get.hxx +0 -81
  1931. data/ext/couchbase/operations/user_get_all.hxx +0 -78
  1932. data/ext/couchbase/operations/user_upsert.hxx +0 -132
  1933. data/ext/couchbase/operations/view_index_drop.hxx +0 -68
  1934. data/ext/couchbase/operations/view_index_get.hxx +0 -95
  1935. data/ext/couchbase/operations/view_index_get_all.hxx +0 -129
  1936. data/ext/couchbase/operations/view_index_upsert.hxx +0 -90
  1937. data/ext/couchbase/operations.hxx +0 -113
  1938. data/ext/couchbase/origin.hxx +0 -183
  1939. data/ext/couchbase/platform/backtrace.c +0 -189
  1940. data/ext/couchbase/platform/base64.cc +0 -234
  1941. data/ext/couchbase/platform/random.cc +0 -119
  1942. data/ext/couchbase/platform/string_hex.cc +0 -99
  1943. data/ext/couchbase/platform/string_hex.h +0 -50
  1944. data/ext/couchbase/platform/terminate_handler.cc +0 -130
  1945. data/ext/couchbase/platform/uuid.cc +0 -96
  1946. data/ext/couchbase/protocol/client_opcode.hxx +0 -640
  1947. data/ext/couchbase/protocol/client_request.hxx +0 -161
  1948. data/ext/couchbase/protocol/client_response.hxx +0 -246
  1949. data/ext/couchbase/protocol/cmd_append.hxx +0 -146
  1950. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -79
  1951. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -196
  1952. data/ext/couchbase/protocol/cmd_exists.hxx +0 -169
  1953. data/ext/couchbase/protocol/cmd_get.hxx +0 -119
  1954. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -140
  1955. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -140
  1956. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -121
  1957. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -114
  1958. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -95
  1959. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -123
  1960. data/ext/couchbase/protocol/cmd_hello.hxx +0 -168
  1961. data/ext/couchbase/protocol/cmd_increment.hxx +0 -196
  1962. data/ext/couchbase/protocol/cmd_info.hxx +0 -25
  1963. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  1964. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -226
  1965. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -415
  1966. data/ext/couchbase/protocol/cmd_noop.hxx +0 -78
  1967. data/ext/couchbase/protocol/cmd_prepend.hxx +0 -144
  1968. data/ext/couchbase/protocol/cmd_remove.hxx +0 -131
  1969. data/ext/couchbase/protocol/cmd_replace.hxx +0 -181
  1970. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -104
  1971. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -95
  1972. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -102
  1973. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -81
  1974. data/ext/couchbase/protocol/cmd_touch.hxx +0 -99
  1975. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -91
  1976. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -181
  1977. data/ext/couchbase/protocol/durability_level.hxx +0 -83
  1978. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  1979. data/ext/couchbase/protocol/hello_feature.hxx +0 -264
  1980. data/ext/couchbase/protocol/magic.hxx +0 -83
  1981. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  1982. data/ext/couchbase/protocol/server_request.hxx +0 -122
  1983. data/ext/couchbase/protocol/status.hxx +0 -340
  1984. data/ext/couchbase/protocol/unsigned_leb128.h +0 -180
  1985. data/ext/couchbase/service_type.hxx +0 -60
  1986. data/ext/couchbase/timeout_defaults.hxx +0 -41
  1987. data/ext/couchbase/tracing/constants.hxx +0 -261
  1988. data/ext/couchbase/tracing/noop_tracer.hxx +0 -50
  1989. data/ext/couchbase/tracing/request_tracer.hxx +0 -77
  1990. data/ext/couchbase/tracing/threshold_logging_options.hxx +0 -64
  1991. data/ext/couchbase/tracing/threshold_logging_tracer.hxx +0 -366
  1992. data/ext/couchbase/utils/byteswap.hxx +0 -33
  1993. data/ext/couchbase/utils/connection_string.hxx +0 -426
  1994. data/ext/couchbase/utils/url_codec.hxx +0 -461
  1995. data/ext/couchbase/version.hxx +0 -38
  1996. data/ext/test/CMakeLists.txt +0 -6
  1997. data/ext/test/test_helper.hxx +0 -141
  1998. data/ext/test/test_helper_native.hxx +0 -56
  1999. data/ext/test/test_helper_ruby.hxx +0 -72
  2000. data/ext/test/test_native_binary_operations.cxx +0 -186
  2001. data/ext/test/test_native_diagnostics.cxx +0 -436
  2002. data/ext/test/test_native_trivial_crud.cxx +0 -83
  2003. data/ext/test/test_native_trivial_query.cxx +0 -60
  2004. data/ext/test/test_ruby_trivial_crud.cxx +0 -35
  2005. data/ext/test/test_ruby_trivial_query.cxx +0 -34
  2006. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +0 -71
  2007. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -125
  2008. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -166
  2009. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -582
  2010. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -133
  2011. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1215
  2012. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  2013. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  2014. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1206
  2015. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -761
  2016. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  2017. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  2018. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  2019. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2501
  2020. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  2021. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  2022. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1053
  2023. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  2024. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  2025. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -811
  2026. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -575
  2027. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2496
  2028. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  2029. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  2030. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  2031. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  2032. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  2033. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  2034. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  2035. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -471
  2036. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  2037. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  2038. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  2039. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  2040. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  2041. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -130
  2042. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -112
  2043. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  2044. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  2045. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  2046. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -64
  2047. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  2048. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -934
  2049. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +0 -107
  2050. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  2051. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -650
  2052. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  2053. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +0 -88
  2054. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  2055. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  2056. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  2057. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -88
  2058. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  2059. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -120
  2060. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  2061. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1822
  2062. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  2063. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  2064. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  2065. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  2066. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -295
  2067. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  2068. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -139
  2069. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -148
  2070. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -148
  2071. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  2072. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  2073. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  2074. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  2075. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -203
  2076. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  2077. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  2078. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  2079. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  2080. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  2081. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  2082. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  2083. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  2084. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  2085. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  2086. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -284
  2087. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  2088. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -80
  2089. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -264
  2090. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  2091. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -438
  2092. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  2093. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  2094. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -608
  2095. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  2096. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  2097. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  2098. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  2099. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  2100. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -396
  2101. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  2102. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  2103. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  2104. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  2105. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  2106. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  2107. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  2108. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  2109. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  2110. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -149
  2111. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  2112. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  2113. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -654
  2114. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  2115. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  2116. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  2117. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  2118. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -668
  2119. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3962
  2120. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  2121. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -385
  2122. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  2123. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -117
  2124. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -178
  2125. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  2126. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  2127. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  2128. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  2129. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  2130. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  2131. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -603
  2132. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  2133. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  2134. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  2135. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  2136. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  2137. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  2138. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  2139. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  2140. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  2141. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  2142. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  2143. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  2144. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -175
  2145. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  2146. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  2147. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  2148. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  2149. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  2150. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  2151. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -73
  2152. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  2153. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  2154. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  2155. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -106
  2156. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  2157. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  2158. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  2159. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  2160. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  2161. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  2162. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  2163. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  2164. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  2165. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  2166. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  2167. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  2168. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  2169. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  2170. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  2171. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -175
  2172. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  2173. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  2174. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  2175. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  2176. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  2177. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  2178. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  2179. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  2180. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -416
  2181. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -98
  2182. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -237
  2183. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -242
  2184. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -123
  2185. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -159
  2186. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -164
  2187. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -145
  2188. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -162
  2189. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -156
  2190. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -528
  2191. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -541
  2192. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -98
  2193. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  2194. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  2195. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -67
  2196. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  2197. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  2198. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  2199. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -140
  2200. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  2201. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -150
  2202. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  2203. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  2204. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -232
  2205. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  2206. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  2207. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  2208. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  2209. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  2210. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  2211. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  2212. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  2213. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -90
  2214. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  2215. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  2216. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  2217. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  2218. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -383
  2219. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  2220. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  2221. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  2222. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  2223. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +0 -45
  2224. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  2225. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -188
  2226. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  2227. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  2228. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  2229. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  2230. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  2231. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -166
  2232. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -145
  2233. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  2234. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  2235. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  2236. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  2237. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -183
  2238. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  2239. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  2240. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  2241. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  2242. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  2243. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  2244. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  2245. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  2246. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  2247. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -148
  2248. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -294
  2249. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -90
  2250. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  2251. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -164
  2252. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  2253. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  2254. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  2255. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -117
  2256. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  2257. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -110
  2258. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -342
  2259. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -127
  2260. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  2261. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -96
  2262. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -171
  2263. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  2264. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -312
  2265. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -135
  2266. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -124
  2267. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -133
  2268. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -125
  2269. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -118
  2270. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  2271. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  2272. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  2273. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -128
  2274. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  2275. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  2276. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  2277. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  2278. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  2279. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  2280. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  2281. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  2282. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  2283. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -125
  2284. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  2285. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -98
  2286. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -119
  2287. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -110
  2288. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  2289. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  2290. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  2291. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  2292. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  2293. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -148
  2294. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -327
  2295. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -121
  2296. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  2297. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  2298. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +0 -249
  2299. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +0 -2264
  2300. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +0 -47
  2301. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +0 -1351
  2302. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +0 -1064
  2303. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +0 -390
  2304. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +0 -1018
  2305. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +0 -486
  2306. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +0 -185
  2307. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +0 -201
  2308. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +0 -152
  2309. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +0 -105
  2310. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +0 -128
  2311. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +0 -261
  2312. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +0 -233
  2313. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +0 -90
  2314. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +0 -264
  2315. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +0 -238
  2316. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +0 -40
  2317. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +0 -36
  2318. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +0 -71
  2319. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +0 -917
  2320. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +0 -178
  2321. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +0 -94
  2322. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +0 -721
  2323. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +0 -327
  2324. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +0 -280
  2325. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +0 -48
  2326. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +0 -720
  2327. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +0 -290
  2328. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +0 -86
  2329. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +0 -311
  2330. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +0 -253
  2331. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +0 -253
  2332. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +0 -486
  2333. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +0 -250
  2334. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +0 -450
  2335. data/ext/third_party/asio/asio/include/asio/execution.hpp +0 -48
  2336. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  2337. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -347
  2338. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -287
  2339. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  2340. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  2341. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  2342. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  2343. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  2344. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  2345. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  2346. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -104
  2347. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  2348. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -111
  2349. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  2350. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -436
  2351. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -527
  2352. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -507
  2353. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -298
  2354. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -635
  2355. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -916
  2356. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -248
  2357. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  2358. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -243
  2359. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  2360. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  2361. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  2362. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  2363. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -301
  2364. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -43
  2365. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -61
  2366. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -440
  2367. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  2368. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +0 -49
  2369. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -248
  2370. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1202
  2371. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -744
  2372. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3335
  2373. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -390
  2374. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  2375. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  2376. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -526
  2377. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -85
  2378. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  2379. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -92
  2380. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -186
  2381. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -350
  2382. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -141
  2383. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -279
  2384. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -1028
  2385. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1104
  2386. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -666
  2387. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -1530
  2388. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -376
  2389. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  2390. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  2391. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  2392. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  2393. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  2394. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  2395. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  2396. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  2397. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  2398. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  2399. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  2400. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  2401. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  2402. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  2403. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  2404. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  2405. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  2406. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  2407. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  2408. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  2409. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  2410. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  2411. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  2412. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  2413. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  2414. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  2415. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  2416. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  2417. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  2418. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  2419. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  2420. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  2421. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  2422. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  2423. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  2424. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  2425. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  2426. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  2427. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  2428. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  2429. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  2430. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  2431. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +0 -61
  2432. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  2433. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  2434. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  2435. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  2436. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  2437. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  2438. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  2439. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  2440. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  2441. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +0 -58
  2442. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  2443. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  2444. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  2445. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  2446. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  2447. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  2448. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  2449. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -126
  2450. data/ext/third_party/asio/asio/include/asio/prefer.hpp +0 -656
  2451. data/ext/third_party/asio/asio/include/asio/query.hpp +0 -296
  2452. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  2453. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  2454. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  2455. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  2456. data/ext/third_party/asio/asio/include/asio/require.hpp +0 -524
  2457. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +0 -310
  2458. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  2459. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  2460. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  2461. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  2462. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -344
  2463. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  2464. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  2465. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -119
  2466. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -165
  2467. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -67
  2468. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -349
  2469. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  2470. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -415
  2471. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  2472. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  2473. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  2474. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -72
  2475. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -69
  2476. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -169
  2477. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  2478. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -76
  2479. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  2480. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  2481. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  2482. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  2483. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  2484. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  2485. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  2486. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  2487. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  2488. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -900
  2489. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  2490. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  2491. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  2492. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  2493. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +0 -31
  2494. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  2495. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -537
  2496. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  2497. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -90
  2498. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  2499. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -662
  2500. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  2501. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  2502. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  2503. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -1111
  2504. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  2505. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +0 -114
  2506. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +0 -114
  2507. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +0 -112
  2508. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +0 -112
  2509. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +0 -100
  2510. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +0 -108
  2511. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +0 -108
  2512. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +0 -108
  2513. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +0 -108
  2514. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +0 -108
  2515. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +0 -108
  2516. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +0 -108
  2517. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +0 -108
  2518. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +0 -108
  2519. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +0 -108
  2520. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +0 -108
  2521. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +0 -108
  2522. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +0 -108
  2523. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +0 -108
  2524. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +0 -108
  2525. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +0 -112
  2526. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +0 -112
  2527. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +0 -234
  2528. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +0 -234
  2529. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +0 -108
  2530. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +0 -108
  2531. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +0 -108
  2532. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +0 -123
  2533. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +0 -123
  2534. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +0 -112
  2535. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +0 -112
  2536. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  2537. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -35
  2538. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  2539. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  2540. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  2541. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -262
  2542. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  2543. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  2544. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  2545. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -169
  2546. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  2547. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  2548. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  2549. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  2550. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  2551. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  2552. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  2553. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  2554. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  2555. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  2556. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -145
  2557. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  2558. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  2559. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  2560. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  2561. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  2562. data/ext/third_party/asio/asio/include/asio.hpp +0 -182
  2563. data/ext/third_party/gsl/CMakeLists.txt +0 -127
  2564. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  2565. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  2566. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  2567. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  2568. data/ext/third_party/gsl/include/gsl/gsl_narrow +0 -52
  2569. data/ext/third_party/gsl/include/gsl/gsl_util +0 -129
  2570. data/ext/third_party/gsl/include/gsl/multi_span +0 -2263
  2571. data/ext/third_party/gsl/include/gsl/pointers +0 -287
  2572. data/ext/third_party/gsl/include/gsl/span +0 -816
  2573. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  2574. data/ext/third_party/gsl/include/gsl/string_span +0 -706
  2575. data/ext/third_party/hdr_histogram_c/src/hdr_histogram.c +0 -1196
  2576. data/ext/third_party/json/CMakeLists.txt +0 -44
  2577. data/ext/third_party/json/LICENSE +0 -21
  2578. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -942
  2579. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  2580. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  2581. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  2582. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  2583. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -251
  2584. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  2585. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  2586. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  2587. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -104
  2588. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  2589. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -268
  2590. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  2591. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  2592. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  2593. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -129
  2594. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  2595. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  2596. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  2597. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +0 -43
  2598. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  2599. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  2600. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  2601. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  2602. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  2603. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +0 -32
  2604. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  2605. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  2606. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  2607. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -418
  2608. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  2609. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  2610. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  2611. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  2612. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -19
  2613. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  2614. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  2615. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  2616. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  2617. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  2618. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  2619. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  2620. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  2621. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -76
  2622. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  2623. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  2624. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  2625. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  2626. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  2627. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  2628. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  2629. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  2630. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  2631. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -113
  2632. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1874
  2633. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  2634. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -98
  2635. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  2636. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  2637. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -97
  2638. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  2639. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  2640. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  2641. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  2642. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  2643. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  2644. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  2645. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  2646. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  2647. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -255
  2648. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  2649. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  2650. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  2651. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  2652. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  2653. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  2654. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  2655. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  2656. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  2657. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  2658. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  2659. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  2660. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  2661. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  2662. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  2663. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  2664. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  2665. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  2666. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  2667. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  2668. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  2669. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  2670. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  2671. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  2672. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  2673. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  2674. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  2675. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  2676. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  2677. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  2678. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  2679. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  2680. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -176
  2681. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  2682. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  2683. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  2684. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  2685. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -49
  2686. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -54
  2687. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  2688. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  2689. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  2690. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  2691. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  2692. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  2693. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  2694. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  2695. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  2696. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  2697. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +0 -176
  2698. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +0 -275
  2699. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +0 -77
  2700. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +0 -151
  2701. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +0 -16
  2702. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -272
  2703. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -66
  2704. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -196
  2705. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -196
  2706. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -103
  2707. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -56
  2708. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -431
  2709. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian.hpp +0 -62
  2710. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_gcc.hpp +0 -206
  2711. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_win.hpp +0 -106
  2712. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint.hpp +0 -54
  2713. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint8.hpp +0 -33
  2714. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint.hpp +0 -45
  2715. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint8.hpp +0 -32
  2716. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf16.hpp +0 -54
  2717. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf32.hpp +0 -43
  2718. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/read_uint.hpp +0 -77
  2719. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +0 -52
  2720. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  2721. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  2722. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -440
  2723. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -105
  2724. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +0 -75
  2725. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +0 -53
  2726. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -234
  2727. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -69
  2728. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +0 -117
  2729. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -94
  2730. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -43
  2731. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +0 -193
  2732. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +0 -118
  2733. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  2734. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +0 -227
  2735. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint16.hpp +0 -62
  2736. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint32.hpp +0 -62
  2737. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint64.hpp +0 -63
  2738. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint8.hpp +0 -36
  2739. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  2740. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  2741. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf16.hpp +0 -49
  2742. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf32.hpp +0 -49
  2743. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -32
  2744. data/ext/third_party/json/include/tao/json/external/pegtl/demangle.hpp +0 -138
  2745. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  2746. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  2747. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  2748. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  2749. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  2750. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  2751. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  2752. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  2753. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -54
  2754. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -106
  2755. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  2756. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  2757. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -51
  2758. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  2759. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  2760. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -55
  2761. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -32
  2762. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  2763. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  2764. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  2765. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -43
  2766. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -54
  2767. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  2768. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  2769. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  2770. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  2771. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  2772. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dependent_false.hpp +0 -16
  2773. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -54
  2774. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -34
  2775. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -54
  2776. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable_control.hpp +0 -25
  2777. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -32
  2778. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -32
  2779. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -33
  2780. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +0 -32
  2781. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -134
  2782. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -213
  2783. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -113
  2784. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -21
  2785. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -21
  2786. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -40
  2787. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +0 -21
  2788. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  2789. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -54
  2790. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -47
  2791. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -21
  2792. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  2793. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  2794. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -39
  2795. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  2796. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -49
  2797. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  2798. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  2799. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  2800. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  2801. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -22
  2802. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  2803. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -80
  2804. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +0 -21
  2805. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -28
  2806. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -26
  2807. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -64
  2808. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -55
  2809. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -55
  2810. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  2811. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  2812. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  2813. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +0 -26
  2814. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  2815. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -89
  2816. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  2817. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -60
  2818. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -44
  2819. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -56
  2820. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -103
  2821. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -72
  2822. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -67
  2823. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  2824. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -81
  2825. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -61
  2826. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  2827. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  2828. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  2829. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -58
  2830. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -67
  2831. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -52
  2832. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  2833. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -59
  2834. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  2835. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +0 -32
  2836. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  2837. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -88
  2838. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -32
  2839. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -169
  2840. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -365
  2841. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  2842. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +0 -64
  2843. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  2844. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -19
  2845. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -51
  2846. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -114
  2847. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -83
  2848. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -54
  2849. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  2850. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  2851. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  2852. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -68
  2853. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -64
  2854. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  2855. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +0 -46
  2856. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  2857. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  2858. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +0 -66
  2859. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -44
  2860. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  2861. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  2862. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  2863. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  2864. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  2865. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  2866. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  2867. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  2868. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  2869. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +0 -14
  2870. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  2871. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  2872. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  2873. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  2874. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  2875. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -57
  2876. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  2877. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  2878. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  2879. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  2880. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  2881. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  2882. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  2883. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  2884. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  2885. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  2886. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -96
  2887. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  2888. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  2889. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  2890. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  2891. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  2892. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  2893. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  2894. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  2895. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  2896. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  2897. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  2898. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  2899. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  2900. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  2901. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  2902. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  2903. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  2904. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  2905. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  2906. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -255
  2907. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  2908. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  2909. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -261
  2910. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  2911. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  2912. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  2913. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  2914. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  2915. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  2916. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +0 -43
  2917. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  2918. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  2919. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  2920. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  2921. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  2922. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +0 -32
  2923. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  2924. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  2925. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  2926. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  2927. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -250
  2928. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  2929. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  2930. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  2931. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -19
  2932. data/ext/third_party/json/include/tao/json/operators.hpp +0 -490
  2933. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -302
  2934. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  2935. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  2936. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -131
  2937. data/ext/third_party/json/include/tao/json/span.hpp +0 -496
  2938. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  2939. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  2940. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  2941. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  2942. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  2943. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  2944. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  2945. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +0 -43
  2946. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  2947. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  2948. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  2949. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  2950. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  2951. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +0 -32
  2952. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  2953. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  2954. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  2955. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -415
  2956. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  2957. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  2958. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  2959. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  2960. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -19
  2961. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  2962. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  2963. data/ext/third_party/json/include/tao/json.hpp +0 -45
  2964. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  2965. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  2966. data/ext/third_party/snappy/snappy-internal.h +0 -315
  2967. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  2968. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  2969. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  2970. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  2971. data/ext/third_party/snappy/snappy.cc +0 -1774
  2972. data/ext/third_party/snappy/snappy.h +0 -209
  2973. data/ext/third_party/spdlog/CMakeLists.txt +0 -291
  2974. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  2975. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  2976. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  2977. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  2978. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  2979. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  2980. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -119
  2981. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -29
  2982. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  2983. data/ext/third_party/spdlog/include/spdlog/common.h +0 -245
  2984. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  2985. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  2986. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  2987. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  2988. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -116
  2989. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  2990. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  2991. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  2992. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  2993. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  2994. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  2995. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  2996. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  2997. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  2998. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -313
  2999. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -115
  3000. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  3001. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  3002. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -146
  3003. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  3004. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  3005. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  3006. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  3007. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1123
  3008. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -566
  3009. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -665
  3010. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1882
  3011. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1453
  3012. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3729
  3013. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  3014. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +0 -450
  3015. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -167
  3016. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  3017. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -751
  3018. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -386
  3019. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +0 -20
  3020. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -27
  3021. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  3022. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -257
  3023. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -366
  3024. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1373
  3025. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  3026. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  3027. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  3028. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  3029. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  3030. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  3031. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  3032. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  3033. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  3034. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  3035. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  3036. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  3037. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  3038. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  3039. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  3040. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  3041. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  3042. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -123
  3043. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -87
  3044. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  3045. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  3046. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  3047. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -170
  3048. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  3049. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -125
  3050. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -295
  3051. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  3052. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  3053. data/ext/third_party/spdlog/src/async.cpp +0 -13
  3054. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  3055. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  3056. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  3057. data/ext/third_party/spdlog/src/fmt.cpp +0 -63
  3058. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  3059. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
@@ -0,0 +1,4364 @@
1
+ 8.0.1 - 2021-07-02
2
+ ------------------
3
+
4
+ * Fixed the version number in the inline namespace
5
+ (`#2374 <https://github.com/fmtlib/fmt/issues/2374>`_).
6
+
7
+ * Added a missing presentation type check for ``std::string``
8
+ (`#2402 <https://github.com/fmtlib/fmt/issues/2402>`_).
9
+
10
+ * Fixed a linkage error when mixing code built with clang and gcc
11
+ (`#2377 <https://github.com/fmtlib/fmt/issues/2377>`_).
12
+
13
+ * Fixed documentation issues
14
+ (`#2396 <https://github.com/fmtlib/fmt/pull/2396>`_,
15
+ `#2403 <https://github.com/fmtlib/fmt/issues/2403>`_,
16
+ `#2406 <https://github.com/fmtlib/fmt/issues/2406>`_).
17
+ Thanks `@mkurdej (Marek Kurdej) <https://github.com/mkurdej>`_.
18
+
19
+ * Removed dead code in FP formatter (
20
+ `#2398 <https://github.com/fmtlib/fmt/pull/2398>`_).
21
+ Thanks `@javierhonduco (Javier Honduvilla Coto)
22
+ <https://github.com/javierhonduco>`_.
23
+
24
+ * Fixed various warnings and compilation issues
25
+ (`#2351 <https://github.com/fmtlib/fmt/issues/2351>`_,
26
+ `#2359 <https://github.com/fmtlib/fmt/issues/2359>`_,
27
+ `#2365 <https://github.com/fmtlib/fmt/pull/2365>`_,
28
+ `#2368 <https://github.com/fmtlib/fmt/issues/2368>`_,
29
+ `#2370 <https://github.com/fmtlib/fmt/pull/2370>`_,
30
+ `#2376 <https://github.com/fmtlib/fmt/pull/2376>`_,
31
+ `#2381 <https://github.com/fmtlib/fmt/pull/2381>`_,
32
+ `#2382 <https://github.com/fmtlib/fmt/pull/2382>`_,
33
+ `#2386 <https://github.com/fmtlib/fmt/issues/2386>`_,
34
+ `#2389 <https://github.com/fmtlib/fmt/pull/2389>`_,
35
+ `#2395 <https://github.com/fmtlib/fmt/pull/2395>`_,
36
+ `#2397 <https://github.com/fmtlib/fmt/pull/2397>`_,
37
+ `#2400 <https://github.com/fmtlib/fmt/issues/2400>`_
38
+ `#2401 <https://github.com/fmtlib/fmt/issues/2401>`_,
39
+ `#2407 <https://github.com/fmtlib/fmt/pull/2407>`_).
40
+ Thanks `@zx2c4 (Jason A. Donenfeld) <https://github.com/zx2c4>`_,
41
+ `@AidanSun05 (Aidan Sun) <https://github.com/AidanSun05>`_,
42
+ `@mattiasljungstrom (Mattias Ljungström)
43
+ <https://github.com/mattiasljungstrom>`_,
44
+ `@joemmett (Jonathan Emmett) <https://github.com/joemmett>`_,
45
+ `@erengy (Eren Okka) <https://github.com/erengy>`_,
46
+ `@patlkli (Patrick Geltinger) <https://github.com/patlkli>`_,
47
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
48
+ `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
49
+
50
+ 8.0.0 - 2021-06-21
51
+ ------------------
52
+
53
+ * Enabled compile-time format string check by default.
54
+ For example (`godbolt <https://godbolt.org/z/sMxcohGjz>`__):
55
+
56
+ .. code:: c++
57
+
58
+ #include <fmt/core.h>
59
+
60
+ int main() {
61
+ fmt::print("{:d}", "I am not a number");
62
+ }
63
+
64
+ gives a compile-time error on compilers with C++20 ``consteval`` support
65
+ (gcc 10+, clang 11+) because ``d`` is not a valid format specifier for a
66
+ string.
67
+
68
+ To pass a runtime string wrap it in ``fmt::runtime``:
69
+
70
+ .. code:: c++
71
+
72
+ fmt::print(fmt::runtime("{:d}"), "I am not a number");
73
+
74
+ * Added compile-time formatting
75
+ (`#2019 <https://github.com/fmtlib/fmt/pull/2019>`_,
76
+ `#2044 <https://github.com/fmtlib/fmt/pull/2044>`_,
77
+ `#2056 <https://github.com/fmtlib/fmt/pull/2056>`_,
78
+ `#2072 <https://github.com/fmtlib/fmt/pull/2072>`_,
79
+ `#2075 <https://github.com/fmtlib/fmt/pull/2075>`_,
80
+ `#2078 <https://github.com/fmtlib/fmt/issues/2078>`_,
81
+ `#2129 <https://github.com/fmtlib/fmt/pull/2129>`_,
82
+ `#2326 <https://github.com/fmtlib/fmt/pull/2326>`_).
83
+ For example (`godbolt <https://godbolt.org/z/Mxx9d89jM>`__):
84
+
85
+ .. code:: c++
86
+
87
+ #include <fmt/compile.h>
88
+
89
+ consteval auto compile_time_itoa(int value) -> std::array<char, 10> {
90
+ auto result = std::array<char, 10>();
91
+ fmt::format_to(result.data(), FMT_COMPILE("{}"), value);
92
+ return result;
93
+ }
94
+
95
+ constexpr auto answer = compile_time_itoa(42);
96
+
97
+ Most of the formatting functionality is available at compile time with a
98
+ notable exception of floating-point numbers and pointers.
99
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
100
+
101
+ * Optimized handling of format specifiers during format string compilation.
102
+ For example, hexadecimal formatting (``"{:x}"``) is now 3-7x faster than
103
+ before when using ``format_to`` with format string compilation and a
104
+ stack-allocated buffer (`#1944 <https://github.com/fmtlib/fmt/issues/1944>`_).
105
+
106
+ Before (7.1.3)::
107
+
108
+ ----------------------------------------------------------------------------
109
+ Benchmark Time CPU Iterations
110
+ ----------------------------------------------------------------------------
111
+ FMTCompileOld/0 15.5 ns 15.5 ns 43302898
112
+ FMTCompileOld/42 16.6 ns 16.6 ns 43278267
113
+ FMTCompileOld/273123 18.7 ns 18.6 ns 37035861
114
+ FMTCompileOld/9223372036854775807 19.4 ns 19.4 ns 35243000
115
+ ----------------------------------------------------------------------------
116
+
117
+ After (8.x)::
118
+
119
+ ----------------------------------------------------------------------------
120
+ Benchmark Time CPU Iterations
121
+ ----------------------------------------------------------------------------
122
+ FMTCompileNew/0 1.99 ns 1.99 ns 360523686
123
+ FMTCompileNew/42 2.33 ns 2.33 ns 279865664
124
+ FMTCompileNew/273123 3.72 ns 3.71 ns 190230315
125
+ FMTCompileNew/9223372036854775807 5.28 ns 5.26 ns 130711631
126
+ ----------------------------------------------------------------------------
127
+
128
+ It is even faster than ``std::to_chars`` from libc++ compiled with clang on
129
+ macOS::
130
+
131
+ ----------------------------------------------------------------------------
132
+ Benchmark Time CPU Iterations
133
+ ----------------------------------------------------------------------------
134
+ ToChars/0 4.42 ns 4.41 ns 160196630
135
+ ToChars/42 5.00 ns 4.98 ns 140735201
136
+ ToChars/273123 7.26 ns 7.24 ns 95784130
137
+ ToChars/9223372036854775807 8.77 ns 8.75 ns 75872534
138
+ ----------------------------------------------------------------------------
139
+
140
+ In other cases, especially involving ``std::string`` construction, the
141
+ speed up is usually lower because handling format specifiers takes a smaller
142
+ fraction of the total time.
143
+
144
+ * Added the ``_cf`` user-defined literal to represent a compiled format string.
145
+ It can be used instead of the ``FMT_COMPILE`` macro
146
+ (`#2043 <https://github.com/fmtlib/fmt/pull/2043>`_,
147
+ `#2242 <https://github.com/fmtlib/fmt/pull/2242>`_):
148
+
149
+ .. code:: c++
150
+
151
+ #include <fmt/compile.h>
152
+
153
+ using namespace fmt::literals;
154
+ auto s = fmt::format(FMT_COMPILE("{}"), 42); // 🙁 not modern
155
+ auto s = fmt::format("{}"_cf, 42); // 🙂 modern as hell
156
+
157
+ It requires compiler support for class types in non-type template parameters
158
+ (a C++20 feature) which is available in GCC 9.3+.
159
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
160
+
161
+ * Format string compilation now requires ``format`` functions of ``formatter``
162
+ specializations for user-defined types to be ``const``:
163
+
164
+ .. code:: c++
165
+
166
+ template <> struct fmt::formatter<my_type>: formatter<string_view> {
167
+ template <typename FormatContext>
168
+ auto format(my_type obj, FormatContext& ctx) const { // Note const here.
169
+ // ...
170
+ }
171
+ };
172
+
173
+ * Added UDL-based named argument support to format string compilation
174
+ (`#2243 <https://github.com/fmtlib/fmt/pull/2243>`_,
175
+ `#2281 <https://github.com/fmtlib/fmt/pull/2281>`_). For example:
176
+
177
+ .. code:: c++
178
+
179
+ #include <fmt/compile.h>
180
+
181
+ using namespace fmt::literals;
182
+ auto s = fmt::format(FMT_COMPILE("{answer}"), "answer"_a = 42);
183
+
184
+ Here the argument named "answer" is resolved at compile time with no
185
+ runtime overhead.
186
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
187
+
188
+ * Added format string compilation support to ``fmt::print``
189
+ (`#2280 <https://github.com/fmtlib/fmt/issues/2280>`_,
190
+ `#2304 <https://github.com/fmtlib/fmt/pull/2304>`_).
191
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
192
+
193
+ * Added initial support for compiling {fmt} as a C++20 module
194
+ (`#2235 <https://github.com/fmtlib/fmt/pull/2235>`_,
195
+ `#2240 <https://github.com/fmtlib/fmt/pull/2240>`_,
196
+ `#2260 <https://github.com/fmtlib/fmt/pull/2260>`_,
197
+ `#2282 <https://github.com/fmtlib/fmt/pull/2282>`_,
198
+ `#2283 <https://github.com/fmtlib/fmt/pull/2283>`_,
199
+ `#2288 <https://github.com/fmtlib/fmt/pull/2288>`_,
200
+ `#2298 <https://github.com/fmtlib/fmt/pull/2298>`_,
201
+ `#2306 <https://github.com/fmtlib/fmt/pull/2306>`_,
202
+ `#2307 <https://github.com/fmtlib/fmt/pull/2307>`_,
203
+ `#2309 <https://github.com/fmtlib/fmt/pull/2309>`_,
204
+ `#2318 <https://github.com/fmtlib/fmt/pull/2318>`_,
205
+ `#2324 <https://github.com/fmtlib/fmt/pull/2324>`_,
206
+ `#2332 <https://github.com/fmtlib/fmt/pull/2332>`_,
207
+ `#2340 <https://github.com/fmtlib/fmt/pull/2340>`_).
208
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
209
+
210
+ * Made symbols private by default reducing shared library size
211
+ (`#2301 <https://github.com/fmtlib/fmt/pull/2301>`_). For example there was
212
+ a ~15% reported reduction on one platform.
213
+ Thanks `@sergiud (Sergiu Deitsch) <https://github.com/sergiud>`_.
214
+
215
+ * Optimized includes making the result of preprocessing ``fmt/format.h``
216
+ ~20% smaller with libstdc++/C++20 and slightly improving build times
217
+ (`#1998 <https://github.com/fmtlib/fmt/issues/1998>`_).
218
+
219
+ * Added support of ranges with non-const ``begin`` / ``end``
220
+ (`#1953 <https://github.com/fmtlib/fmt/pull/1953>`_).
221
+ Thanks `@kitegi (sarah) <https://github.com/kitegi>`_.
222
+
223
+ * Added support of ``std::byte`` and other formattable types to ``fmt::join``
224
+ (`#1981 <https://github.com/fmtlib/fmt/issues/1981>`_,
225
+ `#2040 <https://github.com/fmtlib/fmt/issues/2040>`_,
226
+ `#2050 <https://github.com/fmtlib/fmt/pull/2050>`_,
227
+ `#2262 <https://github.com/fmtlib/fmt/issues/2262>`_). For example:
228
+
229
+ .. code:: c++
230
+
231
+ #include <fmt/format.h>
232
+ #include <cstddef>
233
+ #include <vector>
234
+
235
+ int main() {
236
+ auto bytes = std::vector{std::byte(4), std::byte(2)};
237
+ fmt::print("{}", fmt::join(bytes, ""));
238
+ }
239
+
240
+ prints "42".
241
+
242
+ Thanks `@kamibo (Camille Bordignon) <https://github.com/kamibo>`_.
243
+
244
+ * Implemented the default format for ``std::chrono::system_clock``
245
+ (`#2319 <https://github.com/fmtlib/fmt/issues/2319>`_,
246
+ `#2345 <https://github.com/fmtlib/fmt/pull/2345>`_). For example:
247
+
248
+ .. code:: c++
249
+
250
+ #include <fmt/chrono.h>
251
+
252
+ int main() {
253
+ fmt::print("{}", std::chrono::system_clock::now());
254
+ }
255
+
256
+ prints "2021-06-18 15:22:00" (the output depends on the current date and
257
+ time). Thanks `@sunmy2019 <https://github.com/sunmy2019>`_.
258
+
259
+ * Made more chrono specifiers locale independent by default. Use the ``'L'``
260
+ specifier to get localized formatting. For example:
261
+
262
+ .. code:: c++
263
+
264
+ #include <fmt/chrono.h>
265
+
266
+ int main() {
267
+ std::locale::global(std::locale("ru_RU.UTF-8"));
268
+ auto monday = std::chrono::weekday(1);
269
+ fmt::print("{}\n", monday); // prints "Mon"
270
+ fmt::print("{:L}\n", monday); // prints "пн"
271
+ }
272
+
273
+ * Improved locale handling in chrono formatting
274
+ (`#2337 <https://github.com/fmtlib/fmt/issues/2337>`_,
275
+ `#2349 <https://github.com/fmtlib/fmt/pull/2349>`_,
276
+ `#2350 <https://github.com/fmtlib/fmt/pull/2350>`_).
277
+ Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
278
+
279
+ * Deprecated ``fmt/locale.h`` moving the formatting functions that take a
280
+ locale to ``fmt/format.h`` (``char``) and ``fmt/xchar`` (other overloads).
281
+ This doesn't introduce a dependency on ``<locale>`` so there is virtually no
282
+ compile time effect.
283
+
284
+ * Made parameter order in ``vformat_to`` consistent with ``format_to``
285
+ (`#2327 <https://github.com/fmtlib/fmt/issues/2327>`_).
286
+
287
+ * Added support for time points with arbitrary durations
288
+ (`#2208 <https://github.com/fmtlib/fmt/issues/2208>`_). For example:
289
+
290
+ .. code:: c++
291
+
292
+ #include <fmt/chrono.h>
293
+
294
+ int main() {
295
+ using tp = std::chrono::time_point<
296
+ std::chrono::system_clock, std::chrono::seconds>;
297
+ fmt::print("{:%S}", tp(std::chrono::seconds(42)));
298
+ }
299
+
300
+ prints "42".
301
+
302
+ * Formatting floating-point numbers no longer produces trailing zeros by default
303
+ for consistency with ``std::format``. For example:
304
+
305
+ .. code:: c++
306
+
307
+ #include <fmt/core.h>
308
+
309
+ int main() {
310
+ fmt::print("{0:.3}", 1.1);
311
+ }
312
+
313
+ prints "1.1". Use the ``'#'`` specifier to keep trailing zeros.
314
+
315
+ * Dropped a limit on the number of elements in a range and replaced ``{}`` with
316
+ ``[]`` as range delimiters for consistency with Python's ``str.format``.
317
+
318
+ * The ``'L'`` specifier for locale-specific numeric formatting can now be
319
+ combined with presentation specifiers as in ``std::format``. For example:
320
+
321
+ .. code:: c++
322
+
323
+ #include <fmt/core.h>
324
+ #include <locale>
325
+
326
+ int main() {
327
+ std::locale::global(std::locale("fr_FR.UTF-8"));
328
+ fmt::print("{0:.2Lf}", 0.42);
329
+ }
330
+
331
+ prints "0,42". The deprecated ``'n'`` specifier has been removed.
332
+
333
+ * Made the ``0`` specifier ignored for infinity and NaN
334
+ (`#2305 <https://github.com/fmtlib/fmt/issues/2305>`_,
335
+ `#2310 <https://github.com/fmtlib/fmt/pull/2310>`_).
336
+ Thanks `@Liedtke (Matthias Liedtke) <https://github.com/Liedtke>`_.
337
+
338
+ * Made the hexfloat formatting use the right alignment by default
339
+ (`#2308 <https://github.com/fmtlib/fmt/issues/2308>`_,
340
+ `#2317 <https://github.com/fmtlib/fmt/pull/2317>`_).
341
+ Thanks `@Liedtke (Matthias Liedtke) <https://github.com/Liedtke>`_.
342
+
343
+ * Removed the deprecated numeric alignment (``'='``). Use the ``'0'`` specifier
344
+ instead.
345
+
346
+ * Removed the deprecated ``fmt/posix.h`` header that has been replaced with
347
+ ``fmt/os.h``.
348
+
349
+ * Removed the deprecated ``format_to_n_context``, ``format_to_n_args`` and
350
+ ``make_format_to_n_args``. They have been replaced with ``format_context``,
351
+ ``format_args` and ``make_format_args`` respectively.
352
+
353
+ * Moved ``wchar_t``-specific functions and types to ``fmt/xchar.h``.
354
+ You can define ``FMT_DEPRECATED_INCLUDE_XCHAR`` to automatically include
355
+ ``fmt/xchar.h`` from ``fmt/format.h`` but this will be disabled in the next
356
+ major release.
357
+
358
+ * Fixed handling of the ``'+'`` specifier in localized formatting
359
+ (`#2133 <https://github.com/fmtlib/fmt/issues/2133>`_).
360
+
361
+ * Added support for the ``'s'`` format specifier that gives textual
362
+ representation of ``bool``
363
+ (`#2094 <https://github.com/fmtlib/fmt/issues/2094>`_,
364
+ `#2109 <https://github.com/fmtlib/fmt/pull/2109>`_). For example:
365
+
366
+ .. code:: c++
367
+
368
+ #include <fmt/core.h>
369
+
370
+ int main() {
371
+ fmt::print("{:s}", true);
372
+ }
373
+
374
+ prints "true".
375
+ Thanks `@powercoderlol (Ivan Polyakov) <https://github.com/powercoderlol>`_.
376
+
377
+ * Made ``fmt::ptr`` work with function pointers
378
+ (`#2131 <https://github.com/fmtlib/fmt/pull/2131>`_). For example:
379
+
380
+ .. code:: c++
381
+
382
+ #include <fmt/format.h>
383
+
384
+ int main() {
385
+ fmt::print("My main: {}\n", fmt::ptr(main));
386
+ }
387
+
388
+ Thanks `@mikecrowe (Mike Crowe) <https://github.com/mikecrowe>`_.
389
+
390
+ * The undocumented support for specializing ``formatter`` for pointer types
391
+ has been removed.
392
+
393
+ * Fixed ``fmt::formatted_size`` with format string compilation
394
+ (`#2141 <https://github.com/fmtlib/fmt/pull/2141>`_,
395
+ `#2161 <https://github.com/fmtlib/fmt/pull/2161>`_).
396
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
397
+
398
+ * Fixed handling of empty format strings during format string compilation
399
+ (`#2042 <https://github.com/fmtlib/fmt/issues/2042>`_):
400
+
401
+ .. code:: c++
402
+
403
+ auto s = fmt::format(FMT_COMPILE(""));
404
+
405
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
406
+
407
+ * Fixed handling of enums in ``fmt::to_string``
408
+ (`#2036 <https://github.com/fmtlib/fmt/issues/2036>`_).
409
+
410
+ * Improved width computation
411
+ (`#2033 <https://github.com/fmtlib/fmt/issues/2033>`_,
412
+ `#2091 <https://github.com/fmtlib/fmt/issues/2091>`_). For example:
413
+
414
+ .. code:: c++
415
+
416
+ #include <fmt/core.h>
417
+
418
+ int main() {
419
+ fmt::print("{:-<10}{}\n", "你好", "世界");
420
+ fmt::print("{:-<10}{}\n", "hello", "world");
421
+ }
422
+
423
+ prints
424
+
425
+ .. image:: https://user-images.githubusercontent.com/576385/
426
+ 119840373-cea3ca80-beb9-11eb-91e0-54266c48e181.png
427
+
428
+ on a modern terminal.
429
+
430
+ * The experimental fast output stream (``fmt::ostream``) is now truncated by
431
+ default for consistency with ``fopen``
432
+ (`#2018 <https://github.com/fmtlib/fmt/issues/2018>`_). For example:
433
+
434
+ .. code:: c++
435
+
436
+ #include <fmt/os.h>
437
+
438
+ int main() {
439
+ fmt::ostream out1 = fmt::output_file("guide");
440
+ out1.print("Zaphod");
441
+ out1.close();
442
+ fmt::ostream out2 = fmt::output_file("guide");
443
+ out2.print("Ford");
444
+ }
445
+
446
+ writes "Ford" to the file "guide". To preserve the old file content if any
447
+ pass ``fmt::file::WRONLY | fmt::file::CREATE`` flags to ``fmt::output_file``.
448
+
449
+ * Fixed moving of ``fmt::ostream`` that holds buffered data
450
+ (`#2197 <https://github.com/fmtlib/fmt/issues/2197>`_,
451
+ `#2198 <https://github.com/fmtlib/fmt/pull/2198>`_).
452
+ Thanks `@vtta <https://github.com/vtta>`_.
453
+
454
+ * Replaced the ``fmt::system_error`` exception with a function of the same
455
+ name that constructs ``std::system_error``
456
+ (`#2266 <https://github.com/fmtlib/fmt/issues/2266>`_).
457
+
458
+ * Replaced the ``fmt::windows_error`` exception with a function of the same
459
+ name that constructs ``std::system_error`` with the category returned by
460
+ ``fmt::system_category()``
461
+ (`#2274 <https://github.com/fmtlib/fmt/issues/2274>`_,
462
+ `#2275 <https://github.com/fmtlib/fmt/pull/2275>`_).
463
+ The latter is similar to ``std::sytem_category`` but correctly handles UTF-8.
464
+ Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
465
+
466
+ * Replaced ``fmt::error_code`` with ``std::error_code`` and made it formattable
467
+ (`#2269 <https://github.com/fmtlib/fmt/issues/2269>`_,
468
+ `#2270 <https://github.com/fmtlib/fmt/pull/2270>`_,
469
+ `#2273 <https://github.com/fmtlib/fmt/pull/2273>`_).
470
+ Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
471
+
472
+ * Added speech synthesis support
473
+ (`#2206 <https://github.com/fmtlib/fmt/pull/2206>`_).
474
+
475
+ * Made ``format_to`` work with a memory buffer that has a custom allocator
476
+ (`#2300 <https://github.com/fmtlib/fmt/pull/2300>`_).
477
+ Thanks `@voxmea <https://github.com/voxmea>`_.
478
+
479
+ * Added ``Allocator::max_size`` support to ``basic_memory_buffer``.
480
+ (`#1960 <https://github.com/fmtlib/fmt/pull/1960>`_).
481
+ Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
482
+
483
+ * Added wide string support to ``fmt::join``
484
+ (`#2236 <https://github.com/fmtlib/fmt/pull/2236>`_).
485
+ Thanks `@crbrz <https://github.com/crbrz>`_.
486
+
487
+ * Made iterators passed to ``formatter`` specializations via a format context
488
+ satisfy C++20 ``std::output_iterator`` requirements
489
+ (`#2156 <https://github.com/fmtlib/fmt/issues/2156>`_,
490
+ `#2158 <https://github.com/fmtlib/fmt/pull/2158>`_,
491
+ `#2195 <https://github.com/fmtlib/fmt/issues/2195>`_,
492
+ `#2204 <https://github.com/fmtlib/fmt/pull/2204>`_).
493
+ Thanks `@randomnetcat (Jason Cobb) <https://github.com/randomnetcat>`_.
494
+
495
+ * Optimized the ``printf`` implementation
496
+ (`#1982 <https://github.com/fmtlib/fmt/pull/1982>`_,
497
+ `#1984 <https://github.com/fmtlib/fmt/pull/1984>`_,
498
+ `#2016 <https://github.com/fmtlib/fmt/pull/2016>`_,
499
+ `#2164 <https://github.com/fmtlib/fmt/pull/2164>`_).
500
+ Thanks `@rimathia <https://github.com/rimathia>`_ and
501
+ `@moiwi <https://github.com/moiwi>`_.
502
+
503
+ * Improved detection of ``constexpr`` ``char_traits``
504
+ (`#2246 <https://github.com/fmtlib/fmt/pull/2246>`_,
505
+ `#2257 <https://github.com/fmtlib/fmt/pull/2257>`_).
506
+ Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_.
507
+
508
+ * Fixed writing to ``stdout`` when it is redirected to ``NUL`` on Windows
509
+ (`#2080 <https://github.com/fmtlib/fmt/issues/2080>`_).
510
+
511
+ * Fixed exception propagation from iterators
512
+ (`#2097 <https://github.com/fmtlib/fmt/issues/2097>`_).
513
+
514
+ * Improved ``strftime`` error handling
515
+ (`#2238 <https://github.com/fmtlib/fmt/issues/2238>`_,
516
+ `#2244 <https://github.com/fmtlib/fmt/pull/2244>`_).
517
+ Thanks `@yumeyao <https://github.com/yumeyao>`_.
518
+
519
+ * Stopped using deprecated GCC UDL template extension.
520
+
521
+ * Added ``fmt/args.h`` to the install target
522
+ (`#2096 <https://github.com/fmtlib/fmt/issues/2096>`_).
523
+
524
+ * Error messages are now passed to assert when exceptions are disabled
525
+ (`#2145 <https://github.com/fmtlib/fmt/pull/2145>`_).
526
+ Thanks `@NobodyXu (Jiahao XU) <https://github.com/NobodyXu>`_.
527
+
528
+ * Added the ``FMT_MASTER_PROJECT`` CMake option to control build and install
529
+ targets when {fmt} is included via ``add_subdirectory``
530
+ (`#2098 <https://github.com/fmtlib/fmt/issues/2098>`_,
531
+ `#2100 <https://github.com/fmtlib/fmt/pull/2100>`_).
532
+ Thanks `@randomizedthinking <https://github.com/randomizedthinking>`_.
533
+
534
+ * Improved build configuration
535
+ (`#2026 <https://github.com/fmtlib/fmt/pull/2026>`_,
536
+ `#2122 <https://github.com/fmtlib/fmt/pull/2122>`_).
537
+ Thanks `@luncliff (Park DongHa) <https://github.com/luncliff>`_ and
538
+ `@ibaned (Dan Ibanez) <https://github.com/ibaned>`_.
539
+
540
+ * Fixed various warnings and compilation issues
541
+ (`#1947 <https://github.com/fmtlib/fmt/issues/1947>`_,
542
+ `#1959 <https://github.com/fmtlib/fmt/pull/1959>`_,
543
+ `#1963 <https://github.com/fmtlib/fmt/pull/1963>`_,
544
+ `#1965 <https://github.com/fmtlib/fmt/pull/1965>`_,
545
+ `#1966 <https://github.com/fmtlib/fmt/issues/1966>`_,
546
+ `#1974 <https://github.com/fmtlib/fmt/pull/1974>`_,
547
+ `#1975 <https://github.com/fmtlib/fmt/pull/1975>`_,
548
+ `#1990 <https://github.com/fmtlib/fmt/pull/1990>`_,
549
+ `#2000 <https://github.com/fmtlib/fmt/issues/2000>`_,
550
+ `#2001 <https://github.com/fmtlib/fmt/pull/2001>`_,
551
+ `#2002 <https://github.com/fmtlib/fmt/issues/2002>`_,
552
+ `#2004 <https://github.com/fmtlib/fmt/issues/2004>`_,
553
+ `#2006 <https://github.com/fmtlib/fmt/pull/2006>`_,
554
+ `#2009 <https://github.com/fmtlib/fmt/pull/2009>`_,
555
+ `#2010 <https://github.com/fmtlib/fmt/pull/2010>`_,
556
+ `#2038 <https://github.com/fmtlib/fmt/issues/2038>`_,
557
+ `#2039 <https://github.com/fmtlib/fmt/issues/2039>`_,
558
+ `#2047 <https://github.com/fmtlib/fmt/issues/2047>`_,
559
+ `#2053 <https://github.com/fmtlib/fmt/pull/2053>`_,
560
+ `#2059 <https://github.com/fmtlib/fmt/issues/2059>`_,
561
+ `#2065 <https://github.com/fmtlib/fmt/pull/2065>`_,
562
+ `#2067 <https://github.com/fmtlib/fmt/pull/2067>`_,
563
+ `#2068 <https://github.com/fmtlib/fmt/pull/2068>`_,
564
+ `#2073 <https://github.com/fmtlib/fmt/pull/2073>`_,
565
+ `#2103 <https://github.com/fmtlib/fmt/issues/2103>`_
566
+ `#2105 <https://github.com/fmtlib/fmt/issues/2105>`_
567
+ `#2106 <https://github.com/fmtlib/fmt/pull/2106>`_,
568
+ `#2107 <https://github.com/fmtlib/fmt/pull/2107>`_,
569
+ `#2116 <https://github.com/fmtlib/fmt/issues/2116>`_
570
+ `#2117 <https://github.com/fmtlib/fmt/pull/2117>`_,
571
+ `#2118 <https://github.com/fmtlib/fmt/issues/2118>`_
572
+ `#2119 <https://github.com/fmtlib/fmt/pull/2119>`_,
573
+ `#2127 <https://github.com/fmtlib/fmt/issues/2127>`_,
574
+ `#2128 <https://github.com/fmtlib/fmt/pull/2128>`_,
575
+ `#2140 <https://github.com/fmtlib/fmt/issues/2140>`_,
576
+ `#2142 <https://github.com/fmtlib/fmt/issues/2142>`_,
577
+ `#2143 <https://github.com/fmtlib/fmt/pull/2143>`_,
578
+ `#2144 <https://github.com/fmtlib/fmt/pull/2144>`_,
579
+ `#2147 <https://github.com/fmtlib/fmt/issues/2147>`_,
580
+ `#2148 <https://github.com/fmtlib/fmt/issues/2148>`_,
581
+ `#2149 <https://github.com/fmtlib/fmt/issues/2149>`_,
582
+ `#2152 <https://github.com/fmtlib/fmt/pull/2152>`_,
583
+ `#2160 <https://github.com/fmtlib/fmt/pull/2160>`_,
584
+ `#2170 <https://github.com/fmtlib/fmt/issues/2170>`_,
585
+ `#2175 <https://github.com/fmtlib/fmt/issues/2175>`_,
586
+ `#2176 <https://github.com/fmtlib/fmt/issues/2176>`_,
587
+ `#2177 <https://github.com/fmtlib/fmt/pull/2177>`_,
588
+ `#2178 <https://github.com/fmtlib/fmt/issues/2178>`_,
589
+ `#2179 <https://github.com/fmtlib/fmt/pull/2179>`_,
590
+ `#2180 <https://github.com/fmtlib/fmt/issues/2180>`_,
591
+ `#2181 <https://github.com/fmtlib/fmt/issues/2181>`_,
592
+ `#2183 <https://github.com/fmtlib/fmt/pull/2183>`_,
593
+ `#2184 <https://github.com/fmtlib/fmt/issues/2184>`_,
594
+ `#2185 <https://github.com/fmtlib/fmt/issues/2185>`_,
595
+ `#2186 <https://github.com/fmtlib/fmt/pull/2186>`_,
596
+ `#2187 <https://github.com/fmtlib/fmt/pull/2187>`_,
597
+ `#2190 <https://github.com/fmtlib/fmt/pull/2190>`_,
598
+ `#2192 <https://github.com/fmtlib/fmt/pull/2192>`_,
599
+ `#2194 <https://github.com/fmtlib/fmt/pull/2194>`_,
600
+ `#2205 <https://github.com/fmtlib/fmt/pull/2205>`_,
601
+ `#2210 <https://github.com/fmtlib/fmt/issues/2210>`_,
602
+ `#2211 <https://github.com/fmtlib/fmt/pull/2211>`_,
603
+ `#2215 <https://github.com/fmtlib/fmt/pull/2215>`_,
604
+ `#2216 <https://github.com/fmtlib/fmt/pull/2216>`_,
605
+ `#2218 <https://github.com/fmtlib/fmt/pull/2218>`_,
606
+ `#2220 <https://github.com/fmtlib/fmt/pull/2220>`_,
607
+ `#2228 <https://github.com/fmtlib/fmt/issues/2228>`_,
608
+ `#2229 <https://github.com/fmtlib/fmt/pull/2229>`_,
609
+ `#2230 <https://github.com/fmtlib/fmt/pull/2230>`_,
610
+ `#2233 <https://github.com/fmtlib/fmt/issues/2233>`_,
611
+ `#2239 <https://github.com/fmtlib/fmt/pull/2239>`_,
612
+ `#2248 <https://github.com/fmtlib/fmt/issues/2248>`_,
613
+ `#2252 <https://github.com/fmtlib/fmt/issues/2252>`_,
614
+ `#2253 <https://github.com/fmtlib/fmt/pull/2253>`_,
615
+ `#2255 <https://github.com/fmtlib/fmt/pull/2255>`_,
616
+ `#2261 <https://github.com/fmtlib/fmt/issues/2261>`_,
617
+ `#2278 <https://github.com/fmtlib/fmt/issues/2278>`_,
618
+ `#2284 <https://github.com/fmtlib/fmt/issues/2284>`_,
619
+ `#2287 <https://github.com/fmtlib/fmt/pull/2287>`_,
620
+ `#2289 <https://github.com/fmtlib/fmt/pull/2289>`_,
621
+ `#2290 <https://github.com/fmtlib/fmt/pull/2290>`_,
622
+ `#2293 <https://github.com/fmtlib/fmt/pull/2293>`_,
623
+ `#2295 <https://github.com/fmtlib/fmt/issues/2295>`_,
624
+ `#2296 <https://github.com/fmtlib/fmt/pull/2296>`_,
625
+ `#2297 <https://github.com/fmtlib/fmt/pull/2297>`_,
626
+ `#2311 <https://github.com/fmtlib/fmt/issues/2311>`_,
627
+ `#2313 <https://github.com/fmtlib/fmt/pull/2313>`_,
628
+ `#2315 <https://github.com/fmtlib/fmt/pull/2315>`_,
629
+ `#2320 <https://github.com/fmtlib/fmt/issues/2320>`_,
630
+ `#2321 <https://github.com/fmtlib/fmt/pull/2321>`_,
631
+ `#2323 <https://github.com/fmtlib/fmt/pull/2323>`_,
632
+ `#2328 <https://github.com/fmtlib/fmt/issues/2328>`_,
633
+ `#2329 <https://github.com/fmtlib/fmt/pull/2329>`_,
634
+ `#2333 <https://github.com/fmtlib/fmt/pull/2333>`_,
635
+ `#2338 <https://github.com/fmtlib/fmt/pull/2338>`_,
636
+ `#2341 <https://github.com/fmtlib/fmt/pull/2341>`_).
637
+ Thanks `@darklukee <https://github.com/darklukee>`_,
638
+ `@fagg (Ashton Fagg) <https://github.com/fagg>`_,
639
+ `@killerbot242 (Lieven de Cock) <https://github.com/killerbot242>`_,
640
+ `@jgopel (Jonathan Gopel) <https://github.com/jgopel>`_,
641
+ `@yeswalrus (Walter Gray) <https://github.com/yeswalrus>`_,
642
+ `@Finkman <https://github.com/Finkman>`_,
643
+ `@HazardyKnusperkeks (Björn Schäpers) <https://github.com/HazardyKnusperkeks>`_,
644
+ `@dkavolis (Daumantas Kavolis) <https://github.com/dkavolis>`_
645
+ `@concatime (Issam Maghni) <https://github.com/concatime>`_,
646
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
647
+ `@summivox (Yin Zhong) <https://github.com/summivox>`_,
648
+ `@yNeo <https://github.com/yNeo>`_,
649
+ `@Apache-HB (Elliot) <https://github.com/Apache-HB>`_,
650
+ `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_,
651
+ `@toojays (John Steele Scott) <https://github.com/toojays>`_,
652
+ `@Brainy0207 <https://github.com/Brainy0207>`_,
653
+ `@vadz (VZ) <https://github.com/vadz>`_,
654
+ `@imsherlock (Ryan Sherlock) <https://github.com/imsherlock>`_,
655
+ `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_,
656
+ `@white238 (Chris White) <https://github.com/white238>`_,
657
+ `@yafshar (Yaser Afshar) <https://github.com/yafshar>`_,
658
+ `@BillyDonahue (Billy Donahue) <https://github.com/BillyDonahue>`_,
659
+ `@jstaahl <https://github.com/jstaahl>`_,
660
+ `@denchat <https://github.com/denchat>`_,
661
+ `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_,
662
+ `@ilyakurdyukov (Ilya Kurdyukov) <https://github.com/ilyakurdyukov>`_,
663
+ `@ilmai <https://github.com/ilmai>`_,
664
+ `@JessyDL (Jessy De Lannoit) <https://github.com/JessyDL>`_,
665
+ `@sergiud (Sergiu Deitsch) <https://github.com/sergiud>`_,
666
+ `@mwinterb <https://github.com/mwinterb>`_,
667
+ `@sven-herrmann <https://github.com/sven-herrmann>`_,
668
+ `@jmelas (John Melas) <https://github.com/jmelas>`_,
669
+ `@twoixter (Jose Miguel Pérez) <https://github.com/twoixter>`_,
670
+ `@crbrz <https://github.com/crbrz>`_,
671
+ `@upsj (Tobias Ribizel) <https://github.com/upsj>`_.
672
+
673
+ * Improved documentation
674
+ (`#1986 <https://github.com/fmtlib/fmt/issues/1986>`_,
675
+ `#2051 <https://github.com/fmtlib/fmt/pull/2051>`_,
676
+ `#2057 <https://github.com/fmtlib/fmt/issues/2057>`_,
677
+ `#2081 <https://github.com/fmtlib/fmt/pull/2081>`_,
678
+ `#2084 <https://github.com/fmtlib/fmt/issues/2084>`_,
679
+ `#2312 <https://github.com/fmtlib/fmt/pull/2312>`_).
680
+ Thanks `@imba-tjd (谭九鼎) <https://github.com/imba-tjd>`_,
681
+ `@0x416c69 (AlιAѕѕaѕѕιN) <https://github.com/0x416c69>`_,
682
+ `@mordante <https://github.com/mordante>`_.
683
+
684
+ * Continuous integration and test improvements
685
+ (`#1969 <https://github.com/fmtlib/fmt/issues/1969>`_,
686
+ `#1991 <https://github.com/fmtlib/fmt/pull/1991>`_,
687
+ `#2020 <https://github.com/fmtlib/fmt/pull/2020>`_,
688
+ `#2110 <https://github.com/fmtlib/fmt/pull/2110>`_,
689
+ `#2114 <https://github.com/fmtlib/fmt/pull/2114>`_,
690
+ `#2196 <https://github.com/fmtlib/fmt/issues/2196>`_,
691
+ `#2217 <https://github.com/fmtlib/fmt/pull/2217>`_,
692
+ `#2247 <https://github.com/fmtlib/fmt/pull/2247>`_,
693
+ `#2256 <https://github.com/fmtlib/fmt/pull/2256>`_,
694
+ `#2336 <https://github.com/fmtlib/fmt/pull/2336>`_,
695
+ `#2346 <https://github.com/fmtlib/fmt/pull/2346>`_).
696
+ Thanks `@jgopel (Jonathan Gopel) <https://github.com/jgopel>`_,
697
+ `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_ and
698
+ `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
699
+
700
+ 7.1.3 - 2020-11-24
701
+ ------------------
702
+
703
+ * Fixed handling of buffer boundaries in ``format_to_n``
704
+ (`#1996 <https://github.com/fmtlib/fmt/issues/1996>`_,
705
+ `#2029 <https://github.com/fmtlib/fmt/issues/2029>`_).
706
+
707
+ * Fixed linkage errors when linking with a shared library
708
+ (`#2011 <https://github.com/fmtlib/fmt/issues/2011>`_).
709
+
710
+ * Reintroduced ostream support to range formatters
711
+ (`#2014 <https://github.com/fmtlib/fmt/issues/2014>`_).
712
+
713
+ * Worked around an issue with mixing std versions in gcc
714
+ (`#2017 <https://github.com/fmtlib/fmt/issues/2017>`_).
715
+
716
+ 7.1.2 - 2020-11-04
717
+ ------------------
718
+
719
+ * Fixed floating point formatting with large precision
720
+ (`#1976 <https://github.com/fmtlib/fmt/issues/1976>`_).
721
+
722
+ 7.1.1 - 2020-11-01
723
+ ------------------
724
+
725
+ * Fixed ABI compatibility with 7.0.x
726
+ (`#1961 <https://github.com/fmtlib/fmt/issues/1961>`_).
727
+
728
+ * Added the ``FMT_ARM_ABI_COMPATIBILITY`` macro to work around ABI
729
+ incompatibility between GCC and Clang on ARM
730
+ (`#1919 <https://github.com/fmtlib/fmt/issues/1919>`_).
731
+
732
+ * Worked around a SFINAE bug in GCC 8
733
+ (`#1957 <https://github.com/fmtlib/fmt/issues/1957>`_).
734
+
735
+ * Fixed linkage errors when building with GCC's LTO
736
+ (`#1955 <https://github.com/fmtlib/fmt/issues/1955>`_).
737
+
738
+ * Fixed a compilation error when building without ``__builtin_clz`` or equivalent
739
+ (`#1968 <https://github.com/fmtlib/fmt/pull/1968>`_).
740
+ Thanks `@tohammer (Tobias Hammer) <https://github.com/tohammer>`_.
741
+
742
+ * Fixed a sign conversion warning
743
+ (`#1964 <https://github.com/fmtlib/fmt/pull/1964>`_).
744
+ Thanks `@OptoCloud <https://github.com/OptoCloud>`_.
745
+
746
+ 7.1.0 - 2020-10-25
747
+ ------------------
748
+
749
+ * Switched from `Grisu3
750
+ <https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf>`_
751
+ to `Dragonbox <https://github.com/jk-jeon/dragonbox>`_ for the default
752
+ floating-point formatting which gives the shortest decimal representation
753
+ with round-trip guarantee and correct rounding
754
+ (`#1882 <https://github.com/fmtlib/fmt/pull/1882>`_,
755
+ `#1887 <https://github.com/fmtlib/fmt/pull/1887>`_,
756
+ `#1894 <https://github.com/fmtlib/fmt/pull/1894>`_). This makes {fmt} up to
757
+ 20-30x faster than common implementations of ``std::ostringstream`` and
758
+ ``sprintf`` on `dtoa-benchmark <https://github.com/fmtlib/dtoa-benchmark>`_
759
+ and faster than double-conversion and Ryū:
760
+
761
+ .. image:: https://user-images.githubusercontent.com/576385/
762
+ 95684665-11719600-0ba8-11eb-8e5b-972ff4e49428.png
763
+
764
+ It is possible to get even better performance at the cost of larger binary
765
+ size by compiling with the ``FMT_USE_FULL_CACHE_DRAGONBOX`` macro set to 1.
766
+
767
+ Thanks `@jk-jeon (Junekey Jeon) <https://github.com/jk-jeon>`_.
768
+
769
+ * Added an experimental unsynchronized file output API which, together with
770
+ `format string compilation <https://fmt.dev/latest/api.html#compile-api>`_,
771
+ can give `5-9 times speed up compared to fprintf
772
+ <https://www.zverovich.net/2020/08/04/optimal-file-buffer-size.html>`_
773
+ on common platforms (`godbolt <https://godbolt.org/z/nsTcG8>`__):
774
+
775
+ .. code:: c++
776
+
777
+ #include <fmt/os.h>
778
+
779
+ int main() {
780
+ auto f = fmt::output_file("guide");
781
+ f.print("The answer is {}.", 42);
782
+ }
783
+
784
+ * Added a formatter for ``std::chrono::time_point<system_clock>``
785
+ (`#1819 <https://github.com/fmtlib/fmt/issues/1819>`_,
786
+ `#1837 <https://github.com/fmtlib/fmt/pull/1837>`_). For example
787
+ (`godbolt <https://godbolt.org/z/c4M6fh>`__):
788
+
789
+ .. code:: c++
790
+
791
+ #include <fmt/chrono.h>
792
+
793
+ int main() {
794
+ auto now = std::chrono::system_clock::now();
795
+ fmt::print("The time is {:%H:%M:%S}.\n", now);
796
+ }
797
+
798
+ Thanks `@adamburgess (Adam Burgess) <https://github.com/adamburgess>`_.
799
+
800
+ * Added support for ranges with non-const ``begin``/``end`` to ``fmt::join``
801
+ (`#1784 <https://github.com/fmtlib/fmt/issues/1784>`_,
802
+ `#1786 <https://github.com/fmtlib/fmt/pull/1786>`_). For example
803
+ (`godbolt <https://godbolt.org/z/jP63Tv>`__):
804
+
805
+ .. code:: c++
806
+
807
+ #include <fmt/ranges.h>
808
+ #include <range/v3/view/filter.hpp>
809
+
810
+ int main() {
811
+ using std::literals::string_literals::operator""s;
812
+ auto strs = std::array{"a"s, "bb"s, "ccc"s};
813
+ auto range = strs | ranges::views::filter(
814
+ [] (const std::string &x) { return x.size() != 2; }
815
+ );
816
+ fmt::print("{}\n", fmt::join(range, ""));
817
+ }
818
+
819
+ prints "accc".
820
+
821
+ Thanks `@tonyelewis (Tony E Lewis) <https://github.com/tonyelewis>`_.
822
+
823
+ * Added a ``memory_buffer::append`` overload that takes a range
824
+ (`#1806 <https://github.com/fmtlib/fmt/pull/1806>`_).
825
+ Thanks `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_.
826
+
827
+ * Improved handling of single code units in ``FMT_COMPILE``. For example:
828
+
829
+ .. code:: c++
830
+
831
+ #include <fmt/compile.h>
832
+
833
+ char* f(char* buf) {
834
+ return fmt::format_to(buf, FMT_COMPILE("x{}"), 42);
835
+ }
836
+
837
+ compiles to just (`godbolt <https://godbolt.org/z/5vncz3>`__):
838
+
839
+ .. code:: asm
840
+
841
+ _Z1fPc:
842
+ movb $120, (%rdi)
843
+ xorl %edx, %edx
844
+ cmpl $42, _ZN3fmt2v76detail10basic_dataIvE23zero_or_powers_of_10_32E+8(%rip)
845
+ movl $3, %eax
846
+ seta %dl
847
+ subl %edx, %eax
848
+ movzwl _ZN3fmt2v76detail10basic_dataIvE6digitsE+84(%rip), %edx
849
+ cltq
850
+ addq %rdi, %rax
851
+ movw %dx, -2(%rax)
852
+ ret
853
+
854
+ Here a single ``mov`` instruction writes ``'x'`` (``$120``) to the output
855
+ buffer.
856
+
857
+ * Added dynamic width support to format string compilation
858
+ (`#1809 <https://github.com/fmtlib/fmt/issues/1809>`_).
859
+
860
+ * Improved error reporting for unformattable types: now you'll get the type name
861
+ directly in the error message instead of the note:
862
+
863
+ .. code:: c++
864
+
865
+ #include <fmt/core.h>
866
+
867
+ struct how_about_no {};
868
+
869
+ int main() {
870
+ fmt::print("{}", how_about_no());
871
+ }
872
+
873
+ Error (`godbolt <https://godbolt.org/z/GoxM4e>`__):
874
+
875
+ ``fmt/core.h:1438:3: error: static_assert failed due to requirement
876
+ 'fmt::v7::formattable<how_about_no>()' "Cannot format an argument.
877
+ To make type T formattable provide a formatter<T> specialization:
878
+ https://fmt.dev/latest/api.html#udt"
879
+ ...``
880
+
881
+ * Added the `make_args_checked <https://fmt.dev/7.1.0/api.html#argument-lists>`_
882
+ function template that allows you to write formatting functions with
883
+ compile-time format string checks and avoid binary code bloat
884
+ (`godbolt <https://godbolt.org/z/PEf9qr>`__):
885
+
886
+ .. code:: c++
887
+
888
+ void vlog(const char* file, int line, fmt::string_view format,
889
+ fmt::format_args args) {
890
+ fmt::print("{}: {}: ", file, line);
891
+ fmt::vprint(format, args);
892
+ }
893
+
894
+ template <typename S, typename... Args>
895
+ void log(const char* file, int line, const S& format, Args&&... args) {
896
+ vlog(file, line, format,
897
+ fmt::make_args_checked<Args...>(format, args...));
898
+ }
899
+
900
+ #define MY_LOG(format, ...) \
901
+ log(__FILE__, __LINE__, FMT_STRING(format), __VA_ARGS__)
902
+
903
+ MY_LOG("invalid squishiness: {}", 42);
904
+
905
+ * Replaced ``snprintf`` fallback with a faster internal IEEE 754 ``float`` and
906
+ ``double`` formatter for arbitrary precision. For example
907
+ (`godbolt <https://godbolt.org/z/dPhWvj>`__):
908
+
909
+ .. code:: c++
910
+
911
+ #include <fmt/core.h>
912
+
913
+ int main() {
914
+ fmt::print("{:.500}\n", 4.9406564584124654E-324);
915
+ }
916
+
917
+ prints
918
+
919
+ ``4.9406564584124654417656879286822137236505980261432476442558568250067550727020875186529983636163599237979656469544571773092665671035593979639877479601078187812630071319031140452784581716784898210368871863605699873072305000638740915356498438731247339727316961514003171538539807412623856559117102665855668676818703956031062493194527159149245532930545654440112748012970999954193198940908041656332452475714786901472678015935523861155013480352649347201937902681071074917033322268447533357208324319360923829e-324``.
920
+
921
+ * Made ``format_to_n`` and ``formatted_size`` part of the `core API
922
+ <https://fmt.dev/latest/api.html#core-api>`__
923
+ (`godbolt <https://godbolt.org/z/sPjY1K>`__):
924
+
925
+ .. code:: c++
926
+
927
+ #include <fmt/core.h>
928
+
929
+ int main() {
930
+ char buffer[10];
931
+ auto result = fmt::format_to_n(buffer, sizeof(buffer), "{}", 42);
932
+ }
933
+
934
+ * Added ``fmt::format_to_n`` overload with format string compilation
935
+ (`#1764 <https://github.com/fmtlib/fmt/issues/1764>`_,
936
+ `#1767 <https://github.com/fmtlib/fmt/pull/1767>`_,
937
+ `#1869 <https://github.com/fmtlib/fmt/pull/1869>`_). For example
938
+ (`godbolt <https://godbolt.org/z/93h86q>`__):
939
+
940
+ .. code:: c++
941
+
942
+ #include <fmt/compile.h>
943
+
944
+ int main() {
945
+ char buffer[8];
946
+ fmt::format_to_n(buffer, sizeof(buffer), FMT_COMPILE("{}"), 42);
947
+ }
948
+
949
+ Thanks `@Kurkin (Dmitry Kurkin) <https://github.com/Kurkin>`_,
950
+ `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
951
+
952
+ * Added ``fmt::format_to`` overload that take ``text_style``
953
+ (`#1593 <https://github.com/fmtlib/fmt/issues/1593>`_,
954
+ `#1842 <https://github.com/fmtlib/fmt/issues/1842>`_,
955
+ `#1843 <https://github.com/fmtlib/fmt/pull/1843>`_). For example
956
+ (`godbolt <https://godbolt.org/z/91153r>`__):
957
+
958
+ .. code:: c++
959
+
960
+ #include <fmt/color.h>
961
+
962
+ int main() {
963
+ std::string out;
964
+ fmt::format_to(std::back_inserter(out),
965
+ fmt::emphasis::bold | fg(fmt::color::red),
966
+ "The answer is {}.", 42);
967
+ }
968
+
969
+ Thanks `@Naios (Denis Blank) <https://github.com/Naios>`_.
970
+
971
+ * Made the ``'#'`` specifier emit trailing zeros in addition to the decimal
972
+ point (`#1797 <https://github.com/fmtlib/fmt/issues/1797>`_). For example
973
+ (`godbolt <https://godbolt.org/z/bhdcW9>`__):
974
+
975
+ .. code:: c++
976
+
977
+ #include <fmt/core.h>
978
+
979
+ int main() {
980
+ fmt::print("{:#.2g}", 0.5);
981
+ }
982
+
983
+ prints ``0.50``.
984
+
985
+ * Changed the default floating point format to not include ``.0`` for
986
+ consistency with ``std::format`` and ``std::to_chars``
987
+ (`#1893 <https://github.com/fmtlib/fmt/issues/1893>`_,
988
+ `#1943 <https://github.com/fmtlib/fmt/issues/1943>`_). It is possible to get
989
+ the decimal point and trailing zero with the ``#`` specifier.
990
+
991
+ * Fixed an issue with floating-point formatting that could result in addition of
992
+ a non-significant trailing zero in rare cases e.g. ``1.00e-34`` instead of
993
+ ``1.0e-34`` (`#1873 <https://github.com/fmtlib/fmt/issues/1873>`_,
994
+ `#1917 <https://github.com/fmtlib/fmt/issues/1917>`_).
995
+
996
+ * Made ``fmt::to_string`` fallback on ``ostream`` insertion operator if
997
+ the ``formatter`` specialization is not provided
998
+ (`#1815 <https://github.com/fmtlib/fmt/issues/1815>`_,
999
+ `#1829 <https://github.com/fmtlib/fmt/pull/1829>`_).
1000
+ Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
1001
+
1002
+ * Added support for the append mode to the experimental file API and
1003
+ improved ``fcntl.h`` detection.
1004
+ (`#1847 <https://github.com/fmtlib/fmt/pull/1847>`_,
1005
+ `#1848 <https://github.com/fmtlib/fmt/pull/1848>`_).
1006
+ Thanks `@t-wiser <https://github.com/t-wiser>`_.
1007
+
1008
+ * Fixed handling of types that have both an implicit conversion operator and
1009
+ an overloaded ``ostream`` insertion operator
1010
+ (`#1766 <https://github.com/fmtlib/fmt/issues/1766>`_).
1011
+
1012
+ * Fixed a slicing issue in an internal iterator type
1013
+ (`#1822 <https://github.com/fmtlib/fmt/pull/1822>`_).
1014
+ Thanks `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_.
1015
+
1016
+ * Fixed an issue in locale-specific integer formatting
1017
+ (`#1927 <https://github.com/fmtlib/fmt/issues/1927>`_).
1018
+
1019
+ * Fixed handling of exotic code unit types
1020
+ (`#1870 <https://github.com/fmtlib/fmt/issues/1870>`_,
1021
+ `#1932 <https://github.com/fmtlib/fmt/issues/1932>`_).
1022
+
1023
+ * Improved ``FMT_ALWAYS_INLINE``
1024
+ (`#1878 <https://github.com/fmtlib/fmt/pull/1878>`_).
1025
+ Thanks `@jk-jeon (Junekey Jeon) <https://github.com/jk-jeon>`_.
1026
+
1027
+ * Removed dependency on ``windows.h``
1028
+ (`#1900 <https://github.com/fmtlib/fmt/pull/1900>`_).
1029
+ Thanks `@bernd5 (Bernd Baumanns) <https://github.com/bernd5>`_.
1030
+
1031
+ * Optimized counting of decimal digits on MSVC
1032
+ (`#1890 <https://github.com/fmtlib/fmt/pull/1890>`_).
1033
+ Thanks `@mwinterb <https://github.com/mwinterb>`_.
1034
+
1035
+ * Improved documentation
1036
+ (`#1772 <https://github.com/fmtlib/fmt/issues/1772>`_,
1037
+ `#1775 <https://github.com/fmtlib/fmt/pull/1775>`_,
1038
+ `#1792 <https://github.com/fmtlib/fmt/pull/1792>`_,
1039
+ `#1838 <https://github.com/fmtlib/fmt/pull/1838>`_,
1040
+ `#1888 <https://github.com/fmtlib/fmt/pull/1888>`_,
1041
+ `#1918 <https://github.com/fmtlib/fmt/pull/1918>`_,
1042
+ `#1939 <https://github.com/fmtlib/fmt/pull/1939>`_).
1043
+ Thanks `@leolchat (Léonard Gérard) <https://github.com/leolchat>`_,
1044
+ `@pepsiman (Malcolm Parsons) <https://github.com/pepsiman>`_,
1045
+ `@Klaim (Joël Lamotte) <https://github.com/Klaim>`_,
1046
+ `@ravijanjam (Ravi J) <https://github.com/ravijanjam>`_,
1047
+ `@francesco-st <https://github.com/francesco-st>`_,
1048
+ `@udnaan (Adnan) <https://github.com/udnaan>`_.
1049
+
1050
+ * Added the ``FMT_REDUCE_INT_INSTANTIATIONS`` CMake option that reduces the
1051
+ binary code size at the cost of some integer formatting performance. This can
1052
+ be useful for extremely memory-constrained embedded systems
1053
+ (`#1778 <https://github.com/fmtlib/fmt/issues/1778>`_,
1054
+ `#1781 <https://github.com/fmtlib/fmt/pull/1781>`_).
1055
+ Thanks `@kammce (Khalil Estell) <https://github.com/kammce>`_.
1056
+
1057
+ * Added the ``FMT_USE_INLINE_NAMESPACES`` macro to control usage of inline
1058
+ namespaces (`#1945 <https://github.com/fmtlib/fmt/pull/1945>`_).
1059
+ Thanks `@darklukee <https://github.com/darklukee>`_.
1060
+
1061
+ * Improved build configuration
1062
+ (`#1760 <https://github.com/fmtlib/fmt/pull/1760>`_,
1063
+ `#1770 <https://github.com/fmtlib/fmt/pull/1770>`_,
1064
+ `#1779 <https://github.com/fmtlib/fmt/issues/1779>`_,
1065
+ `#1783 <https://github.com/fmtlib/fmt/pull/1783>`_,
1066
+ `#1823 <https://github.com/fmtlib/fmt/pull/1823>`_).
1067
+ Thanks `@dvetutnev (Dmitriy Vetutnev) <https://github.com/dvetutnev>`_,
1068
+ `@xvitaly (Vitaly Zaitsev) <https://github.com/xvitaly>`_,
1069
+ `@tambry (Raul Tambre) <https://github.com/tambry>`_,
1070
+ `@medithe <https://github.com/medithe>`_,
1071
+ `@martinwuehrer (Martin Wührer) <https://github.com/martinwuehrer>`_.
1072
+
1073
+ * Fixed various warnings and compilation issues
1074
+ (`#1790 <https://github.com/fmtlib/fmt/pull/1790>`_,
1075
+ `#1802 <https://github.com/fmtlib/fmt/pull/1802>`_,
1076
+ `#1808 <https://github.com/fmtlib/fmt/pull/1808>`_,
1077
+ `#1810 <https://github.com/fmtlib/fmt/issues/1810>`_,
1078
+ `#1811 <https://github.com/fmtlib/fmt/issues/1811>`_,
1079
+ `#1812 <https://github.com/fmtlib/fmt/pull/1812>`_,
1080
+ `#1814 <https://github.com/fmtlib/fmt/pull/1814>`_,
1081
+ `#1816 <https://github.com/fmtlib/fmt/pull/1816>`_,
1082
+ `#1817 <https://github.com/fmtlib/fmt/pull/1817>`_,
1083
+ `#1818 <https://github.com/fmtlib/fmt/pull/1818>`_,
1084
+ `#1825 <https://github.com/fmtlib/fmt/issues/1825>`_,
1085
+ `#1836 <https://github.com/fmtlib/fmt/pull/1836>`_,
1086
+ `#1855 <https://github.com/fmtlib/fmt/pull/1855>`_,
1087
+ `#1856 <https://github.com/fmtlib/fmt/pull/1856>`_,
1088
+ `#1860 <https://github.com/fmtlib/fmt/pull/1860>`_,
1089
+ `#1877 <https://github.com/fmtlib/fmt/pull/1877>`_,
1090
+ `#1879 <https://github.com/fmtlib/fmt/pull/1879>`_,
1091
+ `#1880 <https://github.com/fmtlib/fmt/pull/1880>`_,
1092
+ `#1896 <https://github.com/fmtlib/fmt/issues/1896>`_,
1093
+ `#1897 <https://github.com/fmtlib/fmt/pull/1897>`_,
1094
+ `#1898 <https://github.com/fmtlib/fmt/pull/1898>`_,
1095
+ `#1904 <https://github.com/fmtlib/fmt/issues/1904>`_,
1096
+ `#1908 <https://github.com/fmtlib/fmt/pull/1908>`_,
1097
+ `#1911 <https://github.com/fmtlib/fmt/issues/1911>`_,
1098
+ `#1912 <https://github.com/fmtlib/fmt/issues/1912>`_,
1099
+ `#1928 <https://github.com/fmtlib/fmt/issues/1928>`_,
1100
+ `#1929 <https://github.com/fmtlib/fmt/pull/1929>`_,
1101
+ `#1935 <https://github.com/fmtlib/fmt/issues/1935>`_
1102
+ `#1937 <https://github.com/fmtlib/fmt/pull/1937>`_,
1103
+ `#1942 <https://github.com/fmtlib/fmt/pull/1942>`_,
1104
+ `#1949 <https://github.com/fmtlib/fmt/issues/1949>`_).
1105
+ Thanks `@TheQwertiest <https://github.com/TheQwertiest>`_,
1106
+ `@medithe <https://github.com/medithe>`_,
1107
+ `@martinwuehrer (Martin Wührer) <https://github.com/martinwuehrer>`_,
1108
+ `@n16h7hunt3r <https://github.com/n16h7hunt3r>`_,
1109
+ `@Othereum (Seokjin Lee) <https://github.com/Othereum>`_,
1110
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
1111
+ `@AlexanderLanin (Alexander Lanin) <https://github.com/AlexanderLanin>`_,
1112
+ `@gcerretani (Giovanni Cerretani) <https://github.com/gcerretani>`_,
1113
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
1114
+ `@noizefloor (Jan Schwers) <https://github.com/noizefloor>`_,
1115
+ `@akohlmey (Axel Kohlmeyer) <https://github.com/akohlmey>`_,
1116
+ `@jk-jeon (Junekey Jeon) <https://github.com/jk-jeon>`_,
1117
+ `@rimathia <https://github.com/rimathia>`_,
1118
+ `@rglarix (Riccardo Ghetta (larix)) <https://github.com/rglarix>`_,
1119
+ `@moiwi <https://github.com/moiwi>`_,
1120
+ `@heckad (Kazantcev Andrey) <https://github.com/heckad>`_,
1121
+ `@MarcDirven <https://github.com/MarcDirven>`_.
1122
+ `@BartSiwek (Bart Siwek) <https://github.com/BartSiwek>`_,
1123
+ `@darklukee <https://github.com/darklukee>`_.
1124
+
1125
+ 7.0.3 - 2020-08-06
1126
+ ------------------
1127
+
1128
+ * Worked around broken ``numeric_limits`` for 128-bit integers
1129
+ (`#1787 <https://github.com/fmtlib/fmt/issues/1787>`_).
1130
+
1131
+ * Added error reporting on missing named arguments
1132
+ (`#1796 <https://github.com/fmtlib/fmt/issues/1796>`_).
1133
+
1134
+ * Stopped using 128-bit integers with clang-cl
1135
+ (`#1800 <https://github.com/fmtlib/fmt/pull/1800>`_).
1136
+ Thanks `@Kingcom <https://github.com/Kingcom>`_.
1137
+
1138
+ * Fixed issues in locale-specific integer formatting
1139
+ (`#1782 <https://github.com/fmtlib/fmt/issues/1782>`_,
1140
+ `#1801 <https://github.com/fmtlib/fmt/issues/1801>`_).
1141
+
1142
+ 7.0.2 - 2020-07-29
1143
+ ------------------
1144
+
1145
+ * Worked around broken ``numeric_limits`` for 128-bit integers
1146
+ (`#1725 <https://github.com/fmtlib/fmt/issues/1725>`_).
1147
+
1148
+ * Fixed compatibility with CMake 3.4
1149
+ (`#1779 <https://github.com/fmtlib/fmt/issues/1779>`_).
1150
+
1151
+ * Fixed handling of digit separators in locale-specific formatting
1152
+ (`#1782 <https://github.com/fmtlib/fmt/issues/1782>`_).
1153
+
1154
+ 7.0.1 - 2020-07-07
1155
+ ------------------
1156
+
1157
+ * Updated the inline version namespace name.
1158
+
1159
+ * Worked around a gcc bug in mangling of alias templates
1160
+ (`#1753 <https://github.com/fmtlib/fmt/issues/1753>`_).
1161
+
1162
+ * Fixed a linkage error on Windows
1163
+ (`#1757 <https://github.com/fmtlib/fmt/issues/1757>`_).
1164
+ Thanks `@Kurkin (Dmitry Kurkin) <https://github.com/Kurkin>`_.
1165
+
1166
+ * Fixed minor issues with the documentation.
1167
+
1168
+ 7.0.0 - 2020-07-05
1169
+ ------------------
1170
+
1171
+ * Reduced the library size. For example, on macOS a stripped test binary
1172
+ statically linked with {fmt} `shrank from ~368k to less than 100k
1173
+ <http://www.zverovich.net/2020/05/21/reducing-library-size.html>`_.
1174
+
1175
+ * Added a simpler and more efficient `format string compilation API
1176
+ <https://fmt.dev/7.0.0/api.html#compile-api>`_:
1177
+
1178
+ .. code:: c++
1179
+
1180
+ #include <fmt/compile.h>
1181
+
1182
+ // Converts 42 into std::string using the most efficient method and no
1183
+ // runtime format string processing.
1184
+ std::string s = fmt::format(FMT_COMPILE("{}"), 42);
1185
+
1186
+ The old ``fmt::compile`` API is now deprecated.
1187
+
1188
+ * Optimized integer formatting: ``format_to`` with format string compilation
1189
+ and a stack-allocated buffer is now `faster than to_chars on both
1190
+ libc++ and libstdc++
1191
+ <http://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html>`_.
1192
+
1193
+ * Optimized handling of small format strings. For example,
1194
+
1195
+ .. code:: c++
1196
+
1197
+ fmt::format("Result: {}: ({},{},{},{})", str1, str2, str3, str4, str5)
1198
+
1199
+ is now ~40% faster (`#1685 <https://github.com/fmtlib/fmt/issues/1685>`_).
1200
+
1201
+ * Applied extern templates to improve compile times when using the core API
1202
+ and ``fmt/format.h`` (`#1452 <https://github.com/fmtlib/fmt/issues/1452>`_).
1203
+ For example, on macOS with clang the compile time of a test translation unit
1204
+ dropped from 2.3s to 0.3s with ``-O2`` and from 0.6s to 0.3s with the default
1205
+ settings (``-O0``).
1206
+
1207
+ Before (``-O2``)::
1208
+
1209
+ % time c++ -c test.cc -I include -std=c++17 -O2
1210
+ c++ -c test.cc -I include -std=c++17 -O2 2.22s user 0.08s system 99% cpu 2.311 total
1211
+
1212
+ After (``-O2``)::
1213
+
1214
+ % time c++ -c test.cc -I include -std=c++17 -O2
1215
+ c++ -c test.cc -I include -std=c++17 -O2 0.26s user 0.04s system 98% cpu 0.303 total
1216
+
1217
+ Before (default)::
1218
+
1219
+ % time c++ -c test.cc -I include -std=c++17
1220
+ c++ -c test.cc -I include -std=c++17 0.53s user 0.06s system 98% cpu 0.601 total
1221
+
1222
+ After (default)::
1223
+
1224
+ % time c++ -c test.cc -I include -std=c++17
1225
+ c++ -c test.cc -I include -std=c++17 0.24s user 0.06s system 98% cpu 0.301 total
1226
+
1227
+ It is still recommended to use ``fmt/core.h`` instead of ``fmt/format.h`` but
1228
+ the compile time difference is now smaller. Thanks
1229
+ `@alex3d <https://github.com/alex3d>`_ for the suggestion.
1230
+
1231
+ * Named arguments are now stored on stack (no dynamic memory allocations) and
1232
+ the compiled code is more compact and efficient. For example
1233
+
1234
+ .. code:: c++
1235
+
1236
+ #include <fmt/core.h>
1237
+
1238
+ int main() {
1239
+ fmt::print("The answer is {answer}\n", fmt::arg("answer", 42));
1240
+ }
1241
+
1242
+ compiles to just (`godbolt <https://godbolt.org/z/NcfEp_>`__)
1243
+
1244
+ .. code:: asm
1245
+
1246
+ .LC0:
1247
+ .string "answer"
1248
+ .LC1:
1249
+ .string "The answer is {answer}\n"
1250
+ main:
1251
+ sub rsp, 56
1252
+ mov edi, OFFSET FLAT:.LC1
1253
+ mov esi, 23
1254
+ movabs rdx, 4611686018427387905
1255
+ lea rax, [rsp+32]
1256
+ lea rcx, [rsp+16]
1257
+ mov QWORD PTR [rsp+8], 1
1258
+ mov QWORD PTR [rsp], rax
1259
+ mov DWORD PTR [rsp+16], 42
1260
+ mov QWORD PTR [rsp+32], OFFSET FLAT:.LC0
1261
+ mov DWORD PTR [rsp+40], 0
1262
+ call fmt::v6::vprint(fmt::v6::basic_string_view<char>,
1263
+ fmt::v6::format_args)
1264
+ xor eax, eax
1265
+ add rsp, 56
1266
+ ret
1267
+
1268
+ .L.str.1:
1269
+ .asciz "answer"
1270
+
1271
+ * Implemented compile-time checks for dynamic width and precision
1272
+ (`#1614 <https://github.com/fmtlib/fmt/issues/1614>`_):
1273
+
1274
+ .. code:: c++
1275
+
1276
+ #include <fmt/format.h>
1277
+
1278
+ int main() {
1279
+ fmt::print(FMT_STRING("{0:{1}}"), 42);
1280
+ }
1281
+
1282
+ now gives a compilation error because argument 1 doesn't exist::
1283
+
1284
+ In file included from test.cc:1:
1285
+ include/fmt/format.h:2726:27: error: constexpr variable 'invalid_format' must be
1286
+ initialized by a constant expression
1287
+ FMT_CONSTEXPR_DECL bool invalid_format =
1288
+ ^
1289
+ ...
1290
+ include/fmt/core.h:569:26: note: in call to
1291
+ '&checker(s, {}).context_->on_error(&"argument not found"[0])'
1292
+ if (id >= num_args_) on_error("argument not found");
1293
+ ^
1294
+
1295
+ * Added sentinel support to ``fmt::join``
1296
+ (`#1689 <https://github.com/fmtlib/fmt/pull/1689>`_)
1297
+
1298
+ .. code:: c++
1299
+
1300
+ struct zstring_sentinel {};
1301
+ bool operator==(const char* p, zstring_sentinel) { return *p == '\0'; }
1302
+ bool operator!=(const char* p, zstring_sentinel) { return *p != '\0'; }
1303
+
1304
+ struct zstring {
1305
+ const char* p;
1306
+ const char* begin() const { return p; }
1307
+ zstring_sentinel end() const { return {}; }
1308
+ };
1309
+
1310
+ auto s = fmt::format("{}", fmt::join(zstring{"hello"}, "_"));
1311
+ // s == "h_e_l_l_o"
1312
+
1313
+ Thanks `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_.
1314
+
1315
+ * Added support for named arguments, ``clear`` and ``reserve`` to
1316
+ ``dynamic_format_arg_store``
1317
+ (`#1655 <https://github.com/fmtlib/fmt/issues/1655>`_,
1318
+ `#1663 <https://github.com/fmtlib/fmt/pull/1663>`_,
1319
+ `#1674 <https://github.com/fmtlib/fmt/pull/1674>`_,
1320
+ `#1677 <https://github.com/fmtlib/fmt/pull/1677>`_).
1321
+ Thanks `@vsolontsov-ll (Vladimir Solontsov)
1322
+ <https://github.com/vsolontsov-ll>`_.
1323
+
1324
+ * Added support for the ``'c'`` format specifier to integral types for
1325
+ compatibility with ``std::format``
1326
+ (`#1652 <https://github.com/fmtlib/fmt/issues/1652>`_).
1327
+
1328
+ * Replaced the ``'n'`` format specifier with ``'L'`` for compatibility with
1329
+ ``std::format`` (`#1624 <https://github.com/fmtlib/fmt/issues/1624>`_).
1330
+ The ``'n'`` specifier can be enabled via the ``FMT_DEPRECATED_N_SPECIFIER``
1331
+ macro.
1332
+
1333
+ * The ``'='`` format specifier is now disabled by default for compatibility with
1334
+ ``std::format``. It can be enabled via the ``FMT_DEPRECATED_NUMERIC_ALIGN``
1335
+ macro.
1336
+
1337
+ * Removed the following deprecated APIs:
1338
+
1339
+ * ``FMT_STRING_ALIAS`` and ``fmt`` macros - replaced by ``FMT_STRING``
1340
+ * ``fmt::basic_string_view::char_type`` - replaced by
1341
+ ``fmt::basic_string_view::value_type``
1342
+ * ``convert_to_int``
1343
+ * ``format_arg_store::types``
1344
+ * ``*parse_context`` - replaced by ``*format_parse_context``
1345
+ * ``FMT_DEPRECATED_INCLUDE_OS``
1346
+ * ``FMT_DEPRECATED_PERCENT`` - incompatible with ``std::format``
1347
+ * ``*writer`` - replaced by compiled format API
1348
+
1349
+ * Renamed the ``internal`` namespace to ``detail``
1350
+ (`#1538 <https://github.com/fmtlib/fmt/issues/1538>`_). The former is still
1351
+ provided as an alias if the ``FMT_USE_INTERNAL`` macro is defined.
1352
+
1353
+ * Improved compatibility between ``fmt::printf`` with the standard specs
1354
+ (`#1595 <https://github.com/fmtlib/fmt/issues/1595>`_,
1355
+ `#1682 <https://github.com/fmtlib/fmt/pull/1682>`_,
1356
+ `#1683 <https://github.com/fmtlib/fmt/pull/1683>`_,
1357
+ `#1687 <https://github.com/fmtlib/fmt/pull/1687>`_,
1358
+ `#1699 <https://github.com/fmtlib/fmt/pull/1699>`_).
1359
+ Thanks `@rimathia <https://github.com/rimathia>`_.
1360
+
1361
+ * Fixed handling of ``operator<<`` overloads that use ``copyfmt``
1362
+ (`#1666 <https://github.com/fmtlib/fmt/issues/1666>`_).
1363
+
1364
+ * Added the ``FMT_OS`` CMake option to control inclusion of OS-specific APIs
1365
+ in the fmt target. This can be useful for embedded platforms
1366
+ (`#1654 <https://github.com/fmtlib/fmt/issues/1654>`_,
1367
+ `#1656 <https://github.com/fmtlib/fmt/pull/1656>`_).
1368
+ Thanks `@kwesolowski (Krzysztof Wesolowski)
1369
+ <https://github.com/kwesolowski>`_.
1370
+
1371
+ * Replaced ``FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION`` with the ``FMT_FUZZ``
1372
+ macro to prevent interferring with fuzzing of projects using {fmt}
1373
+ (`#1650 <https://github.com/fmtlib/fmt/pull/1650>`_).
1374
+ Thanks `@asraa (Asra Ali) <https://github.com/asraa>`_.
1375
+
1376
+ * Fixed compatibility with emscripten
1377
+ (`#1636 <https://github.com/fmtlib/fmt/issues/1636>`_,
1378
+ `#1637 <https://github.com/fmtlib/fmt/pull/1637>`_).
1379
+ Thanks `@ArthurSonzogni (Arthur Sonzogni)
1380
+ <https://github.com/ArthurSonzogni>`_.
1381
+
1382
+ * Improved documentation
1383
+ (`#704 <https://github.com/fmtlib/fmt/issues/704>`_,
1384
+ `#1643 <https://github.com/fmtlib/fmt/pull/1643>`_,
1385
+ `#1660 <https://github.com/fmtlib/fmt/pull/1660>`_,
1386
+ `#1681 <https://github.com/fmtlib/fmt/pull/1681>`_,
1387
+ `#1691 <https://github.com/fmtlib/fmt/pull/1691>`_,
1388
+ `#1706 <https://github.com/fmtlib/fmt/pull/1706>`_,
1389
+ `#1714 <https://github.com/fmtlib/fmt/pull/1714>`_,
1390
+ `#1721 <https://github.com/fmtlib/fmt/pull/1721>`_,
1391
+ `#1739 <https://github.com/fmtlib/fmt/pull/1739>`_,
1392
+ `#1740 <https://github.com/fmtlib/fmt/pull/1740>`_,
1393
+ `#1741 <https://github.com/fmtlib/fmt/pull/1741>`_,
1394
+ `#1751 <https://github.com/fmtlib/fmt/pull/1751>`_).
1395
+ Thanks `@senior7515 (Alexander Gallego) <https://github.com/senior7515>`_,
1396
+ `@lsr0 (Lindsay Roberts) <https://github.com/lsr0>`_,
1397
+ `@puetzk (Kevin Puetz) <https://github.com/puetzk>`_,
1398
+ `@fpelliccioni (Fernando Pelliccioni) <https://github.com/fpelliccioni>`_,
1399
+ Alexey Kuzmenko, `@jelly (jelle van der Waa) <https://github.com/jelly>`_,
1400
+ `@claremacrae (Clare Macrae) <https://github.com/claremacrae>`_,
1401
+ `@jiapengwen (文佳鹏) <https://github.com/jiapengwen>`_,
1402
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
1403
+ `@alexey-milovidov <https://github.com/alexey-milovidov>`_.
1404
+
1405
+ * Implemented various build configuration fixes and improvements
1406
+ (`#1603 <https://github.com/fmtlib/fmt/pull/1603>`_,
1407
+ `#1657 <https://github.com/fmtlib/fmt/pull/1657>`_,
1408
+ `#1702 <https://github.com/fmtlib/fmt/pull/1702>`_,
1409
+ `#1728 <https://github.com/fmtlib/fmt/pull/1728>`_).
1410
+ Thanks `@scramsby (Scott Ramsby) <https://github.com/scramsby>`_,
1411
+ `@jtojnar (Jan Tojnar) <https://github.com/jtojnar>`_,
1412
+ `@orivej (Orivej Desh) <https://github.com/orivej>`_,
1413
+ `@flagarde <https://github.com/flagarde>`_.
1414
+
1415
+ * Fixed various warnings and compilation issues
1416
+ (`#1616 <https://github.com/fmtlib/fmt/pull/1616>`_,
1417
+ `#1620 <https://github.com/fmtlib/fmt/issues/1620>`_,
1418
+ `#1622 <https://github.com/fmtlib/fmt/issues/1622>`_,
1419
+ `#1625 <https://github.com/fmtlib/fmt/issues/1625>`_,
1420
+ `#1627 <https://github.com/fmtlib/fmt/pull/1627>`_,
1421
+ `#1628 <https://github.com/fmtlib/fmt/issues/1628>`_,
1422
+ `#1629 <https://github.com/fmtlib/fmt/pull/1629>`_,
1423
+ `#1631 <https://github.com/fmtlib/fmt/issues/1631>`_,
1424
+ `#1633 <https://github.com/fmtlib/fmt/pull/1633>`_,
1425
+ `#1649 <https://github.com/fmtlib/fmt/pull/1649>`_,
1426
+ `#1658 <https://github.com/fmtlib/fmt/issues/1658>`_,
1427
+ `#1661 <https://github.com/fmtlib/fmt/pull/1661>`_,
1428
+ `#1667 <https://github.com/fmtlib/fmt/pull/1667>`_,
1429
+ `#1668 <https://github.com/fmtlib/fmt/issues/1668>`_,
1430
+ `#1669 <https://github.com/fmtlib/fmt/pull/1669>`_,
1431
+ `#1692 <https://github.com/fmtlib/fmt/issues/1692>`_,
1432
+ `#1696 <https://github.com/fmtlib/fmt/pull/1696>`_,
1433
+ `#1697 <https://github.com/fmtlib/fmt/pull/1697>`_,
1434
+ `#1707 <https://github.com/fmtlib/fmt/issues/1707>`_,
1435
+ `#1712 <https://github.com/fmtlib/fmt/pull/1712>`_,
1436
+ `#1716 <https://github.com/fmtlib/fmt/pull/1716>`_,
1437
+ `#1722 <https://github.com/fmtlib/fmt/pull/1722>`_,
1438
+ `#1724 <https://github.com/fmtlib/fmt/issues/1724>`_,
1439
+ `#1729 <https://github.com/fmtlib/fmt/pull/1729>`_,
1440
+ `#1738 <https://github.com/fmtlib/fmt/pull/1738>`_,
1441
+ `#1742 <https://github.com/fmtlib/fmt/issues/1742>`_,
1442
+ `#1743 <https://github.com/fmtlib/fmt/issues/1743>`_,
1443
+ `#1744 <https://github.com/fmtlib/fmt/pull/1744>`_,
1444
+ `#1747 <https://github.com/fmtlib/fmt/issues/1747>`_,
1445
+ `#1750 <https://github.com/fmtlib/fmt/pull/1750>`_).
1446
+ Thanks `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
1447
+ `@gabime (Gabi Melman) <https://github.com/gabime>`_,
1448
+ `@johnor (Johan) <https://github.com/johnor>`_,
1449
+ `@Kurkin (Dmitry Kurkin) <https://github.com/Kurkin>`_,
1450
+ `@invexed (James Beach) <https://github.com/invexed>`_,
1451
+ `@peterbell10 <https://github.com/peterbell10>`_,
1452
+ `@daixtrose (Markus Werle) <https://github.com/daixtrose>`_,
1453
+ `@petrutlucian94 (Lucian Petrut) <https://github.com/petrutlucian94>`_,
1454
+ `@Neargye (Daniil Goncharov) <https://github.com/Neargye>`_,
1455
+ `@ambitslix (Attila M. Szilagyi) <https://github.com/ambitslix>`_,
1456
+ `@gabime (Gabi Melman) <https://github.com/gabime>`_,
1457
+ `@erthink (Leonid Yuriev) <https://github.com/erthink>`_,
1458
+ `@tohammer (Tobias Hammer) <https://github.com/tohammer>`_,
1459
+ `@0x8000-0000 (Florin Iucha) <https://github.com/0x8000-0000>`_.
1460
+
1461
+ 6.2.1 - 2020-05-09
1462
+ ------------------
1463
+
1464
+ * Fixed ostream support in ``sprintf``
1465
+ (`#1631 <https://github.com/fmtlib/fmt/issues/1631>`_).
1466
+
1467
+ * Fixed type detection when using implicit conversion to ``string_view`` and
1468
+ ostream ``operator<<`` inconsistently
1469
+ (`#1662 <https://github.com/fmtlib/fmt/issues/1662>`_).
1470
+
1471
+ 6.2.0 - 2020-04-05
1472
+ ------------------
1473
+
1474
+ * Improved error reporting when trying to format an object of a non-formattable
1475
+ type:
1476
+
1477
+ .. code:: c++
1478
+
1479
+ fmt::format("{}", S());
1480
+
1481
+ now gives::
1482
+
1483
+ include/fmt/core.h:1015:5: error: static_assert failed due to requirement
1484
+ 'formattable' "Cannot format argument. To make type T formattable provide a
1485
+ formatter<T> specialization:
1486
+ https://fmt.dev/latest/api.html#formatting-user-defined-types"
1487
+ static_assert(
1488
+ ^
1489
+ ...
1490
+ note: in instantiation of function template specialization
1491
+ 'fmt::v6::format<char [3], S, char>' requested here
1492
+ fmt::format("{}", S());
1493
+ ^
1494
+
1495
+ if ``S`` is not formattable.
1496
+
1497
+ * Reduced the library size by ~10%.
1498
+
1499
+ * Always print decimal point if ``#`` is specified
1500
+ (`#1476 <https://github.com/fmtlib/fmt/issues/1476>`_,
1501
+ `#1498 <https://github.com/fmtlib/fmt/issues/1498>`_):
1502
+
1503
+ .. code:: c++
1504
+
1505
+ fmt::print("{:#.0f}", 42.0);
1506
+
1507
+ now prints ``42.``
1508
+
1509
+ * Implemented the ``'L'`` specifier for locale-specific numeric formatting to
1510
+ improve compatibility with ``std::format``. The ``'n'`` specifier is now
1511
+ deprecated and will be removed in the next major release.
1512
+
1513
+ * Moved OS-specific APIs such as ``windows_error`` from ``fmt/format.h`` to
1514
+ ``fmt/os.h``. You can define ``FMT_DEPRECATED_INCLUDE_OS`` to automatically
1515
+ include ``fmt/os.h`` from ``fmt/format.h`` for compatibility but this will be
1516
+ disabled in the next major release.
1517
+
1518
+ * Added precision overflow detection in floating-point formatting.
1519
+
1520
+ * Implemented detection of invalid use of ``fmt::arg``.
1521
+
1522
+ * Used ``type_identity`` to block unnecessary template argument deduction.
1523
+ Thanks Tim Song.
1524
+
1525
+ * Improved UTF-8 handling
1526
+ (`#1109 <https://github.com/fmtlib/fmt/issues/1109>`_):
1527
+
1528
+ .. code:: c++
1529
+
1530
+ fmt::print("┌{0:─^{2}}┐\n"
1531
+ "│{1: ^{2}}│\n"
1532
+ "└{0:─^{2}}┘\n", "", "Привет, мир!", 20);
1533
+
1534
+ now prints::
1535
+
1536
+ ┌────────────────────┐
1537
+ │ Привет, мир! │
1538
+ └────────────────────┘
1539
+
1540
+ on systems that support Unicode.
1541
+
1542
+ * Added experimental dynamic argument storage
1543
+ (`#1170 <https://github.com/fmtlib/fmt/issues/1170>`_,
1544
+ `#1584 <https://github.com/fmtlib/fmt/pull/1584>`_):
1545
+
1546
+ .. code:: c++
1547
+
1548
+ fmt::dynamic_format_arg_store<fmt::format_context> store;
1549
+ store.push_back("answer");
1550
+ store.push_back(42);
1551
+ fmt::vprint("The {} is {}.\n", store);
1552
+
1553
+ prints::
1554
+
1555
+ The answer is 42.
1556
+
1557
+ Thanks `@vsolontsov-ll (Vladimir Solontsov)
1558
+ <https://github.com/vsolontsov-ll>`_.
1559
+
1560
+ * Made ``fmt::join`` accept ``initializer_list``
1561
+ (`#1591 <https://github.com/fmtlib/fmt/pull/1591>`_).
1562
+ Thanks `@Rapotkinnik (Nikolay Rapotkin) <https://github.com/Rapotkinnik>`_.
1563
+
1564
+ * Fixed handling of empty tuples
1565
+ (`#1588 <https://github.com/fmtlib/fmt/issues/1588>`_).
1566
+
1567
+ * Fixed handling of output iterators in ``format_to_n``
1568
+ (`#1506 <https://github.com/fmtlib/fmt/issues/1506>`_).
1569
+
1570
+ * Fixed formatting of ``std::chrono::duration`` types to wide output
1571
+ (`#1533 <https://github.com/fmtlib/fmt/pull/1533>`_).
1572
+ Thanks `@zeffy (pilao) <https://github.com/zeffy>`_.
1573
+
1574
+ * Added const ``begin`` and ``end`` overload to buffers
1575
+ (`#1553 <https://github.com/fmtlib/fmt/pull/1553>`_).
1576
+ Thanks `@dominicpoeschko <https://github.com/dominicpoeschko>`_.
1577
+
1578
+ * Added the ability to disable floating-point formatting via ``FMT_USE_FLOAT``,
1579
+ ``FMT_USE_DOUBLE`` and ``FMT_USE_LONG_DOUBLE`` macros for extremely
1580
+ memory-constrained embedded system
1581
+ (`#1590 <https://github.com/fmtlib/fmt/pull/1590>`_).
1582
+ Thanks `@albaguirre (Alberto Aguirre) <https://github.com/albaguirre>`_.
1583
+
1584
+ * Made ``FMT_STRING`` work with ``constexpr`` ``string_view``
1585
+ (`#1589 <https://github.com/fmtlib/fmt/pull/1589>`_).
1586
+ Thanks `@scramsby (Scott Ramsby) <https://github.com/scramsby>`_.
1587
+
1588
+ * Implemented a minor optimization in the format string parser
1589
+ (`#1560 <https://github.com/fmtlib/fmt/pull/1560>`_).
1590
+ Thanks `@IkarusDeveloper <https://github.com/IkarusDeveloper>`_.
1591
+
1592
+ * Improved attribute detection
1593
+ (`#1469 <https://github.com/fmtlib/fmt/pull/1469>`_,
1594
+ `#1475 <https://github.com/fmtlib/fmt/pull/1475>`_,
1595
+ `#1576 <https://github.com/fmtlib/fmt/pull/1576>`_).
1596
+ Thanks `@federico-busato (Federico) <https://github.com/federico-busato>`_,
1597
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
1598
+ `@refnum <https://github.com/refnum>`_.
1599
+
1600
+ * Improved documentation
1601
+ (`#1481 <https://github.com/fmtlib/fmt/pull/1481>`_,
1602
+ `#1523 <https://github.com/fmtlib/fmt/pull/1523>`_).
1603
+ Thanks `@JackBoosY (Jack·Boos·Yu) <https://github.com/JackBoosY>`_,
1604
+ `@imba-tjd (谭九鼎) <https://github.com/imba-tjd>`_.
1605
+
1606
+ * Fixed symbol visibility on Linux when compiling with ``-fvisibility=hidden``
1607
+ (`#1535 <https://github.com/fmtlib/fmt/pull/1535>`_).
1608
+ Thanks `@milianw (Milian Wolff) <https://github.com/milianw>`_.
1609
+
1610
+ * Implemented various build configuration fixes and improvements
1611
+ (`#1264 <https://github.com/fmtlib/fmt/issues/1264>`_,
1612
+ `#1460 <https://github.com/fmtlib/fmt/issues/1460>`_,
1613
+ `#1534 <https://github.com/fmtlib/fmt/pull/1534>`_,
1614
+ `#1536 <https://github.com/fmtlib/fmt/issues/1536>`_,
1615
+ `#1545 <https://github.com/fmtlib/fmt/issues/1545>`_,
1616
+ `#1546 <https://github.com/fmtlib/fmt/pull/1546>`_,
1617
+ `#1566 <https://github.com/fmtlib/fmt/issues/1566>`_,
1618
+ `#1582 <https://github.com/fmtlib/fmt/pull/1582>`_,
1619
+ `#1597 <https://github.com/fmtlib/fmt/issues/1597>`_,
1620
+ `#1598 <https://github.com/fmtlib/fmt/pull/1598>`_).
1621
+ Thanks `@ambitslix (Attila M. Szilagyi) <https://github.com/ambitslix>`_,
1622
+ `@jwillikers (Jordan Williams) <https://github.com/jwillikers>`_,
1623
+ `@stac47 (Laurent Stacul) <https://github.com/stac47>`_.
1624
+
1625
+ * Fixed various warnings and compilation issues
1626
+ (`#1433 <https://github.com/fmtlib/fmt/pull/1433>`_,
1627
+ `#1461 <https://github.com/fmtlib/fmt/issues/1461>`_,
1628
+ `#1470 <https://github.com/fmtlib/fmt/pull/1470>`_,
1629
+ `#1480 <https://github.com/fmtlib/fmt/pull/1480>`_,
1630
+ `#1485 <https://github.com/fmtlib/fmt/pull/1485>`_,
1631
+ `#1492 <https://github.com/fmtlib/fmt/pull/1492>`_,
1632
+ `#1493 <https://github.com/fmtlib/fmt/issues/1493>`_,
1633
+ `#1504 <https://github.com/fmtlib/fmt/issues/1504>`_,
1634
+ `#1505 <https://github.com/fmtlib/fmt/pull/1505>`_,
1635
+ `#1512 <https://github.com/fmtlib/fmt/pull/1512>`_,
1636
+ `#1515 <https://github.com/fmtlib/fmt/issues/1515>`_,
1637
+ `#1516 <https://github.com/fmtlib/fmt/pull/1516>`_,
1638
+ `#1518 <https://github.com/fmtlib/fmt/pull/1518>`_,
1639
+ `#1519 <https://github.com/fmtlib/fmt/pull/1519>`_,
1640
+ `#1520 <https://github.com/fmtlib/fmt/pull/1520>`_,
1641
+ `#1521 <https://github.com/fmtlib/fmt/pull/1521>`_,
1642
+ `#1522 <https://github.com/fmtlib/fmt/pull/1522>`_,
1643
+ `#1524 <https://github.com/fmtlib/fmt/issues/1524>`_,
1644
+ `#1530 <https://github.com/fmtlib/fmt/pull/1530>`_,
1645
+ `#1531 <https://github.com/fmtlib/fmt/issues/1531>`_,
1646
+ `#1532 <https://github.com/fmtlib/fmt/pull/1532>`_,
1647
+ `#1539 <https://github.com/fmtlib/fmt/issues/1539>`_,
1648
+ `#1547 <https://github.com/fmtlib/fmt/issues/1547>`_,
1649
+ `#1548 <https://github.com/fmtlib/fmt/issues/1548>`_,
1650
+ `#1554 <https://github.com/fmtlib/fmt/pull/1554>`_,
1651
+ `#1567 <https://github.com/fmtlib/fmt/issues/1567>`_,
1652
+ `#1568 <https://github.com/fmtlib/fmt/pull/1568>`_,
1653
+ `#1569 <https://github.com/fmtlib/fmt/pull/1569>`_,
1654
+ `#1571 <https://github.com/fmtlib/fmt/pull/1571>`_,
1655
+ `#1573 <https://github.com/fmtlib/fmt/pull/1573>`_,
1656
+ `#1575 <https://github.com/fmtlib/fmt/pull/1575>`_,
1657
+ `#1581 <https://github.com/fmtlib/fmt/pull/1581>`_,
1658
+ `#1583 <https://github.com/fmtlib/fmt/issues/1583>`_,
1659
+ `#1586 <https://github.com/fmtlib/fmt/issues/1586>`_,
1660
+ `#1587 <https://github.com/fmtlib/fmt/issues/1587>`_,
1661
+ `#1594 <https://github.com/fmtlib/fmt/issues/1594>`_,
1662
+ `#1596 <https://github.com/fmtlib/fmt/pull/1596>`_,
1663
+ `#1604 <https://github.com/fmtlib/fmt/issues/1604>`_,
1664
+ `#1606 <https://github.com/fmtlib/fmt/pull/1606>`_,
1665
+ `#1607 <https://github.com/fmtlib/fmt/issues/1607>`_,
1666
+ `#1609 <https://github.com/fmtlib/fmt/issues/1609>`_).
1667
+ Thanks `@marti4d (Chris Martin) <https://github.com/marti4d>`_,
1668
+ `@iPherian <https://github.com/iPherian>`_,
1669
+ `@parkertomatoes <https://github.com/parkertomatoes>`_,
1670
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
1671
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
1672
+ `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_,
1673
+ `@torsten48 <https://github.com/torsten48>`_,
1674
+ `@tohammer (Tobias Hammer) <https://github.com/tohammer>`_,
1675
+ `@lefticus (Jason Turner) <https://github.com/lefticus>`_,
1676
+ `@ryusakki (Haise) <https://github.com/ryusakki>`_,
1677
+ `@adnsv (Alex Denisov) <https://github.com/adnsv>`_,
1678
+ `@fghzxm <https://github.com/fghzxm>`_,
1679
+ `@refnum <https://github.com/refnum>`_,
1680
+ `@pramodk (Pramod Kumbhar) <https://github.com/pramodk>`_,
1681
+ `@Spirrwell <https://github.com/Spirrwell>`_,
1682
+ `@scramsby (Scott Ramsby) <https://github.com/scramsby>`_.
1683
+
1684
+ 6.1.2 - 2019-12-11
1685
+ ------------------
1686
+
1687
+ * Fixed ABI compatibility with ``libfmt.so.6.0.0``
1688
+ (`#1471 <https://github.com/fmtlib/fmt/issues/1471>`_).
1689
+
1690
+ * Fixed handling types convertible to ``std::string_view``
1691
+ (`#1451 <https://github.com/fmtlib/fmt/pull/1451>`_).
1692
+ Thanks `@denizevrenci (Deniz Evrenci) <https://github.com/denizevrenci>`_.
1693
+
1694
+ * Made CUDA test an opt-in enabled via the ``FMT_CUDA_TEST`` CMake option.
1695
+
1696
+ * Fixed sign conversion warnings
1697
+ (`#1440 <https://github.com/fmtlib/fmt/pull/1440>`_).
1698
+ Thanks `@0x8000-0000 (Florin Iucha) <https://github.com/0x8000-0000>`_.
1699
+
1700
+ 6.1.1 - 2019-12-04
1701
+ ------------------
1702
+
1703
+ * Fixed shared library build on Windows
1704
+ (`#1443 <https://github.com/fmtlib/fmt/pull/1443>`_,
1705
+ `#1445 <https://github.com/fmtlib/fmt/issues/1445>`_,
1706
+ `#1446 <https://github.com/fmtlib/fmt/pull/1446>`_,
1707
+ `#1450 <https://github.com/fmtlib/fmt/issues/1450>`_).
1708
+ Thanks `@egorpugin (Egor Pugin) <https://github.com/egorpugin>`_,
1709
+ `@bbolli (Beat Bolli) <https://github.com/bbolli>`_.
1710
+
1711
+ * Added a missing decimal point in exponent notation with trailing zeros.
1712
+
1713
+ * Removed deprecated ``format_arg_store::TYPES``.
1714
+
1715
+ 6.1.0 - 2019-12-01
1716
+ ------------------
1717
+
1718
+ * {fmt} now formats IEEE 754 ``float`` and ``double`` using the shortest decimal
1719
+ representation with correct rounding by default:
1720
+
1721
+ .. code:: c++
1722
+
1723
+ #include <cmath>
1724
+ #include <fmt/core.h>
1725
+
1726
+ int main() {
1727
+ fmt::print("{}", M_PI);
1728
+ }
1729
+
1730
+ prints ``3.141592653589793``.
1731
+
1732
+ * Made the fast binary to decimal floating-point formatter the default,
1733
+ simplified it and improved performance. {fmt} is now 15 times faster than
1734
+ libc++'s ``std::ostringstream``, 11 times faster than ``printf`` and 10%
1735
+ faster than double-conversion on `dtoa-benchmark
1736
+ <https://github.com/fmtlib/dtoa-benchmark>`_:
1737
+
1738
+ ================== ========= =======
1739
+ Function Time (ns) Speedup
1740
+ ================== ========= =======
1741
+ ostringstream 1,346.30 1.00x
1742
+ ostrstream 1,195.74 1.13x
1743
+ sprintf 995.08 1.35x
1744
+ doubleconv 99.10 13.59x
1745
+ fmt 88.34 15.24x
1746
+ ================== ========= =======
1747
+
1748
+ .. image:: https://user-images.githubusercontent.com/576385/
1749
+ 69767160-cdaca400-112f-11ea-9fc5-347c9f83caad.png
1750
+
1751
+ * {fmt} no longer converts ``float`` arguments to ``double``. In particular this
1752
+ improves the default (shortest) representation of floats and makes
1753
+ ``fmt::format`` consistent with ``std::format`` specs
1754
+ (`#1336 <https://github.com/fmtlib/fmt/issues/1336>`_,
1755
+ `#1353 <https://github.com/fmtlib/fmt/issues/1353>`_,
1756
+ `#1360 <https://github.com/fmtlib/fmt/pull/1360>`_,
1757
+ `#1361 <https://github.com/fmtlib/fmt/pull/1361>`_):
1758
+
1759
+ .. code:: c++
1760
+
1761
+ fmt::print("{}", 0.1f);
1762
+
1763
+ prints ``0.1`` instead of ``0.10000000149011612``.
1764
+
1765
+ Thanks `@orivej (Orivej Desh) <https://github.com/orivej>`_.
1766
+
1767
+ * Made floating-point formatting output consistent with ``printf``/iostreams
1768
+ (`#1376 <https://github.com/fmtlib/fmt/issues/1376>`_,
1769
+ `#1417 <https://github.com/fmtlib/fmt/issues/1417>`_).
1770
+
1771
+ * Added support for 128-bit integers
1772
+ (`#1287 <https://github.com/fmtlib/fmt/pull/1287>`_):
1773
+
1774
+ .. code:: c++
1775
+
1776
+ fmt::print("{}", std::numeric_limits<__int128_t>::max());
1777
+
1778
+ prints ``170141183460469231731687303715884105727``.
1779
+
1780
+ Thanks `@denizevrenci (Deniz Evrenci) <https://github.com/denizevrenci>`_.
1781
+
1782
+ * The overload of ``print`` that takes ``text_style`` is now atomic, i.e. the
1783
+ output from different threads doesn't interleave
1784
+ (`#1351 <https://github.com/fmtlib/fmt/pull/1351>`_).
1785
+ Thanks `@tankiJong (Tanki Zhang) <https://github.com/tankiJong>`_.
1786
+
1787
+ * Made compile time in the header-only mode ~20% faster by reducing the number
1788
+ of template instantiations. ``wchar_t`` overload of ``vprint`` was moved from
1789
+ ``fmt/core.h`` to ``fmt/format.h``.
1790
+
1791
+ * Added an overload of ``fmt::join`` that works with tuples
1792
+ (`#1322 <https://github.com/fmtlib/fmt/issues/1322>`_,
1793
+ `#1330 <https://github.com/fmtlib/fmt/pull/1330>`_):
1794
+
1795
+ .. code:: c++
1796
+
1797
+ #include <tuple>
1798
+ #include <fmt/ranges.h>
1799
+
1800
+ int main() {
1801
+ std::tuple<char, int, float> t{'a', 1, 2.0f};
1802
+ fmt::print("{}", t);
1803
+ }
1804
+
1805
+ prints ``('a', 1, 2.0)``.
1806
+
1807
+ Thanks `@jeremyong (Jeremy Ong) <https://github.com/jeremyong>`_.
1808
+
1809
+ * Changed formatting of octal zero with prefix from "00" to "0":
1810
+
1811
+ .. code:: c++
1812
+
1813
+ fmt::print("{:#o}", 0);
1814
+
1815
+ prints ``0``.
1816
+
1817
+ * The locale is now passed to ostream insertion (``<<``) operators
1818
+ (`#1406 <https://github.com/fmtlib/fmt/pull/1406>`_):
1819
+
1820
+ .. code:: c++
1821
+
1822
+ #include <fmt/locale.h>
1823
+ #include <fmt/ostream.h>
1824
+
1825
+ struct S {
1826
+ double value;
1827
+ };
1828
+
1829
+ std::ostream& operator<<(std::ostream& os, S s) {
1830
+ return os << s.value;
1831
+ }
1832
+
1833
+ int main() {
1834
+ auto s = fmt::format(std::locale("fr_FR.UTF-8"), "{}", S{0.42});
1835
+ // s == "0,42"
1836
+ }
1837
+
1838
+ Thanks `@dlaugt (Daniel Laügt) <https://github.com/dlaugt>`_.
1839
+
1840
+ * Locale-specific number formatting now uses grouping
1841
+ (`#1393 <https://github.com/fmtlib/fmt/issues/1393>`_
1842
+ `#1394 <https://github.com/fmtlib/fmt/pull/1394>`_).
1843
+ Thanks `@skrdaniel <https://github.com/skrdaniel>`_.
1844
+
1845
+ * Fixed handling of types with deleted implicit rvalue conversion to
1846
+ ``const char**`` (`#1421 <https://github.com/fmtlib/fmt/issues/1421>`_):
1847
+
1848
+ .. code:: c++
1849
+
1850
+ struct mystring {
1851
+ operator const char*() const&;
1852
+ operator const char*() &;
1853
+ operator const char*() const&& = delete;
1854
+ operator const char*() && = delete;
1855
+ };
1856
+ mystring str;
1857
+ fmt::print("{}", str); // now compiles
1858
+
1859
+ * Enums are now mapped to correct underlying types instead of ``int``
1860
+ (`#1286 <https://github.com/fmtlib/fmt/pull/1286>`_).
1861
+ Thanks `@agmt (Egor Seredin) <https://github.com/agmt>`_.
1862
+
1863
+ * Enum classes are no longer implicitly converted to ``int``
1864
+ (`#1424 <https://github.com/fmtlib/fmt/issues/1424>`_).
1865
+
1866
+ * Added ``basic_format_parse_context`` for consistency with C++20
1867
+ ``std::format`` and deprecated ``basic_parse_context``.
1868
+
1869
+ * Fixed handling of UTF-8 in precision
1870
+ (`#1389 <https://github.com/fmtlib/fmt/issues/1389>`_,
1871
+ `#1390 <https://github.com/fmtlib/fmt/pull/1390>`_).
1872
+ Thanks `@tajtiattila (Attila Tajti) <https://github.com/tajtiattila>`_.
1873
+
1874
+ * {fmt} can now be installed on Linux, macOS and Windows with
1875
+ `Conda <https://docs.conda.io/en/latest/>`__ using its
1876
+ `conda-forge <https://conda-forge.org>`__
1877
+ `package <https://github.com/conda-forge/fmt-feedstock>`__
1878
+ (`#1410 <https://github.com/fmtlib/fmt/pull/1410>`_)::
1879
+
1880
+ conda install -c conda-forge fmt
1881
+
1882
+ Thanks `@tdegeus (Tom de Geus) <https://github.com/tdegeus>`_.
1883
+
1884
+ * Added a CUDA test (`#1285 <https://github.com/fmtlib/fmt/pull/1285>`_,
1885
+ `#1317 <https://github.com/fmtlib/fmt/pull/1317>`_).
1886
+ Thanks `@luncliff (Park DongHa) <https://github.com/luncliff>`_ and
1887
+ `@risa2000 <https://github.com/risa2000>`_.
1888
+
1889
+ * Improved documentation (`#1276 <https://github.com/fmtlib/fmt/pull/1276>`_,
1890
+ `#1291 <https://github.com/fmtlib/fmt/issues/1291>`_,
1891
+ `#1296 <https://github.com/fmtlib/fmt/issues/1296>`_,
1892
+ `#1315 <https://github.com/fmtlib/fmt/pull/1315>`_,
1893
+ `#1332 <https://github.com/fmtlib/fmt/pull/1332>`_,
1894
+ `#1337 <https://github.com/fmtlib/fmt/pull/1337>`_,
1895
+ `#1395 <https://github.com/fmtlib/fmt/issues/1395>`_
1896
+ `#1418 <https://github.com/fmtlib/fmt/pull/1418>`_).
1897
+ Thanks
1898
+ `@waywardmonkeys (Bruce Mitchener) <https://github.com/waywardmonkeys>`_,
1899
+ `@pauldreik (Paul Dreik) <https://github.com/pauldreik>`_,
1900
+ `@jackoalan (Jack Andersen) <https://github.com/jackoalan>`_.
1901
+
1902
+ * Various code improvements
1903
+ (`#1358 <https://github.com/fmtlib/fmt/pull/1358>`_,
1904
+ `#1407 <https://github.com/fmtlib/fmt/pull/1407>`_).
1905
+ Thanks `@orivej (Orivej Desh) <https://github.com/orivej>`_,
1906
+ `@dpacbach (David P. Sicilia) <https://github.com/dpacbach>`_,
1907
+
1908
+ * Fixed compile-time format string checks for user-defined types
1909
+ (`#1292 <https://github.com/fmtlib/fmt/issues/1292>`_).
1910
+
1911
+ * Worked around a false positive in ``unsigned-integer-overflow`` sanitizer
1912
+ (`#1377 <https://github.com/fmtlib/fmt/issues/1377>`_).
1913
+
1914
+ * Fixed various warnings and compilation issues
1915
+ (`#1273 <https://github.com/fmtlib/fmt/issues/1273>`_,
1916
+ `#1278 <https://github.com/fmtlib/fmt/pull/1278>`_,
1917
+ `#1280 <https://github.com/fmtlib/fmt/pull/1280>`_,
1918
+ `#1281 <https://github.com/fmtlib/fmt/issues/1281>`_,
1919
+ `#1288 <https://github.com/fmtlib/fmt/issues/1288>`_,
1920
+ `#1290 <https://github.com/fmtlib/fmt/pull/1290>`_,
1921
+ `#1301 <https://github.com/fmtlib/fmt/pull/1301>`_,
1922
+ `#1305 <https://github.com/fmtlib/fmt/issues/1305>`_,
1923
+ `#1306 <https://github.com/fmtlib/fmt/issues/1306>`_,
1924
+ `#1309 <https://github.com/fmtlib/fmt/issues/1309>`_,
1925
+ `#1312 <https://github.com/fmtlib/fmt/pull/1312>`_,
1926
+ `#1313 <https://github.com/fmtlib/fmt/issues/1313>`_,
1927
+ `#1316 <https://github.com/fmtlib/fmt/issues/1316>`_,
1928
+ `#1319 <https://github.com/fmtlib/fmt/issues/1319>`_,
1929
+ `#1320 <https://github.com/fmtlib/fmt/pull/1320>`_,
1930
+ `#1326 <https://github.com/fmtlib/fmt/pull/1326>`_,
1931
+ `#1328 <https://github.com/fmtlib/fmt/pull/1328>`_,
1932
+ `#1344 <https://github.com/fmtlib/fmt/issues/1344>`_,
1933
+ `#1345 <https://github.com/fmtlib/fmt/pull/1345>`_,
1934
+ `#1347 <https://github.com/fmtlib/fmt/pull/1347>`_,
1935
+ `#1349 <https://github.com/fmtlib/fmt/pull/1349>`_,
1936
+ `#1354 <https://github.com/fmtlib/fmt/issues/1354>`_,
1937
+ `#1362 <https://github.com/fmtlib/fmt/issues/1362>`_,
1938
+ `#1366 <https://github.com/fmtlib/fmt/issues/1366>`_,
1939
+ `#1364 <https://github.com/fmtlib/fmt/pull/1364>`_,
1940
+ `#1370 <https://github.com/fmtlib/fmt/pull/1370>`_,
1941
+ `#1371 <https://github.com/fmtlib/fmt/pull/1371>`_,
1942
+ `#1385 <https://github.com/fmtlib/fmt/issues/1385>`_,
1943
+ `#1388 <https://github.com/fmtlib/fmt/issues/1388>`_,
1944
+ `#1397 <https://github.com/fmtlib/fmt/pull/1397>`_,
1945
+ `#1414 <https://github.com/fmtlib/fmt/pull/1414>`_,
1946
+ `#1416 <https://github.com/fmtlib/fmt/pull/1416>`_,
1947
+ `#1422 <https://github.com/fmtlib/fmt/issues/1422>`_
1948
+ `#1427 <https://github.com/fmtlib/fmt/pull/1427>`_,
1949
+ `#1431 <https://github.com/fmtlib/fmt/issues/1431>`_,
1950
+ `#1433 <https://github.com/fmtlib/fmt/pull/1433>`_).
1951
+ Thanks `@hhb <https://github.com/hhb>`_,
1952
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
1953
+ `@gabime (Gabi Melman) <https://github.com/gabime>`_,
1954
+ `@neheb (Rosen Penev) <https://github.com/neheb>`_,
1955
+ `@vedranmiletic (Vedran Miletić) <https://github.com/vedranmiletic>`_,
1956
+ `@dkavolis (Daumantas Kavolis) <https://github.com/dkavolis>`_,
1957
+ `@mwinterb <https://github.com/mwinterb>`_,
1958
+ `@orivej (Orivej Desh) <https://github.com/orivej>`_,
1959
+ `@denizevrenci (Deniz Evrenci) <https://github.com/denizevrenci>`_
1960
+ `@leonklingele <https://github.com/leonklingele>`_,
1961
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
1962
+ `@kent-tri <https://github.com/kent-tri>`_,
1963
+ `@0x8000-0000 (Florin Iucha) <https://github.com/0x8000-0000>`_,
1964
+ `@marti4d (Chris Martin) <https://github.com/marti4d>`_.
1965
+
1966
+ 6.0.0 - 2019-08-26
1967
+ ------------------
1968
+
1969
+ * Switched to the `MIT license
1970
+ <https://github.com/fmtlib/fmt/blob/5a4b24613ba16cc689977c3b5bd8274a3ba1dd1f/LICENSE.rst>`_
1971
+ with an optional exception that allows distributing binary code without
1972
+ attribution.
1973
+
1974
+ * Floating-point formatting is now locale-independent by default:
1975
+
1976
+ .. code:: c++
1977
+
1978
+ #include <locale>
1979
+ #include <fmt/core.h>
1980
+
1981
+ int main() {
1982
+ std::locale::global(std::locale("ru_RU.UTF-8"));
1983
+ fmt::print("value = {}", 4.2);
1984
+ }
1985
+
1986
+ prints "value = 4.2" regardless of the locale.
1987
+
1988
+ For locale-specific formatting use the ``n`` specifier:
1989
+
1990
+ .. code:: c++
1991
+
1992
+ std::locale::global(std::locale("ru_RU.UTF-8"));
1993
+ fmt::print("value = {:n}", 4.2);
1994
+
1995
+ prints "value = 4,2".
1996
+
1997
+ * Added an experimental Grisu floating-point formatting algorithm
1998
+ implementation (disabled by default). To enable it compile with the
1999
+ ``FMT_USE_GRISU`` macro defined to 1:
2000
+
2001
+ .. code:: c++
2002
+
2003
+ #define FMT_USE_GRISU 1
2004
+ #include <fmt/format.h>
2005
+
2006
+ auto s = fmt::format("{}", 4.2); // formats 4.2 using Grisu
2007
+
2008
+ With Grisu enabled, {fmt} is 13x faster than ``std::ostringstream`` (libc++)
2009
+ and 10x faster than ``sprintf`` on `dtoa-benchmark
2010
+ <https://github.com/fmtlib/dtoa-benchmark>`_ (`full results
2011
+ <https://fmt.dev/unknown_mac64_clang10.0.html>`_):
2012
+
2013
+ .. image:: https://user-images.githubusercontent.com/576385/
2014
+ 54883977-9fe8c000-4e28-11e9-8bde-272d122e7c52.jpg
2015
+
2016
+ * Separated formatting and parsing contexts for consistency with
2017
+ `C++20 std::format <http://eel.is/c++draft/format>`_, removing the
2018
+ undocumented ``basic_format_context::parse_context()`` function.
2019
+
2020
+ * Added `oss-fuzz <https://github.com/google/oss-fuzz>`_ support
2021
+ (`#1199 <https://github.com/fmtlib/fmt/pull/1199>`_).
2022
+ Thanks `@pauldreik (Paul Dreik) <https://github.com/pauldreik>`_.
2023
+
2024
+ * ``formatter`` specializations now always take precedence over ``operator<<``
2025
+ (`#952 <https://github.com/fmtlib/fmt/issues/952>`_):
2026
+
2027
+ .. code:: c++
2028
+
2029
+ #include <iostream>
2030
+ #include <fmt/ostream.h>
2031
+
2032
+ struct S {};
2033
+
2034
+ std::ostream& operator<<(std::ostream& os, S) {
2035
+ return os << 1;
2036
+ }
2037
+
2038
+ template <>
2039
+ struct fmt::formatter<S> : fmt::formatter<int> {
2040
+ auto format(S, format_context& ctx) {
2041
+ return formatter<int>::format(2, ctx);
2042
+ }
2043
+ };
2044
+
2045
+ int main() {
2046
+ std::cout << S() << "\n"; // prints 1 using operator<<
2047
+ fmt::print("{}\n", S()); // prints 2 using formatter
2048
+ }
2049
+
2050
+ * Introduced the experimental ``fmt::compile`` function that does format string
2051
+ compilation (`#618 <https://github.com/fmtlib/fmt/issues/618>`_,
2052
+ `#1169 <https://github.com/fmtlib/fmt/issues/1169>`_,
2053
+ `#1171 <https://github.com/fmtlib/fmt/pull/1171>`_):
2054
+
2055
+ .. code:: c++
2056
+
2057
+ #include <fmt/compile.h>
2058
+
2059
+ auto f = fmt::compile<int>("{}");
2060
+ std::string s = fmt::format(f, 42); // can be called multiple times to
2061
+ // format different values
2062
+ // s == "42"
2063
+
2064
+ It moves the cost of parsing a format string outside of the format function
2065
+ which can be beneficial when identically formatting many objects of the same
2066
+ types. Thanks `@stryku (Mateusz Janek) <https://github.com/stryku>`_.
2067
+
2068
+ * Added experimental ``%`` format specifier that formats floating-point values
2069
+ as percentages (`#1060 <https://github.com/fmtlib/fmt/pull/1060>`_,
2070
+ `#1069 <https://github.com/fmtlib/fmt/pull/1069>`_,
2071
+ `#1071 <https://github.com/fmtlib/fmt/pull/1071>`_):
2072
+
2073
+ .. code:: c++
2074
+
2075
+ auto s = fmt::format("{:.1%}", 0.42); // s == "42.0%"
2076
+
2077
+ Thanks `@gawain-bolton (Gawain Bolton) <https://github.com/gawain-bolton>`_.
2078
+
2079
+ * Implemented precision for floating-point durations
2080
+ (`#1004 <https://github.com/fmtlib/fmt/issues/1004>`_,
2081
+ `#1012 <https://github.com/fmtlib/fmt/pull/1012>`_):
2082
+
2083
+ .. code:: c++
2084
+
2085
+ auto s = fmt::format("{:.1}", std::chrono::duration<double>(1.234));
2086
+ // s == 1.2s
2087
+
2088
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2089
+
2090
+ * Implemented ``chrono`` format specifiers ``%Q`` and ``%q`` that give the value
2091
+ and the unit respectively (`#1019 <https://github.com/fmtlib/fmt/pull/1019>`_):
2092
+
2093
+ .. code:: c++
2094
+
2095
+ auto value = fmt::format("{:%Q}", 42s); // value == "42"
2096
+ auto unit = fmt::format("{:%q}", 42s); // unit == "s"
2097
+
2098
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2099
+
2100
+ * Fixed handling of dynamic width in chrono formatter:
2101
+
2102
+ .. code:: c++
2103
+
2104
+ auto s = fmt::format("{0:{1}%H:%M:%S}", std::chrono::seconds(12345), 12);
2105
+ // ^ width argument index ^ width
2106
+ // s == "03:25:45 "
2107
+
2108
+ Thanks Howard Hinnant.
2109
+
2110
+ * Removed deprecated ``fmt/time.h``. Use ``fmt/chrono.h`` instead.
2111
+
2112
+ * Added ``fmt::format`` and ``fmt::vformat`` overloads that take ``text_style``
2113
+ (`#993 <https://github.com/fmtlib/fmt/issues/993>`_,
2114
+ `#994 <https://github.com/fmtlib/fmt/pull/994>`_):
2115
+
2116
+ .. code:: c++
2117
+
2118
+ #include <fmt/color.h>
2119
+
2120
+ std::string message = fmt::format(fmt::emphasis::bold | fg(fmt::color::red),
2121
+ "The answer is {}.", 42);
2122
+
2123
+ Thanks `@Naios (Denis Blank) <https://github.com/Naios>`_.
2124
+
2125
+ * Removed the deprecated color API (``print_colored``). Use the new API, namely
2126
+ ``print`` overloads that take ``text_style`` instead.
2127
+
2128
+ * Made ``std::unique_ptr`` and ``std::shared_ptr`` formattable as pointers via
2129
+ ``fmt::ptr`` (`#1121 <https://github.com/fmtlib/fmt/pull/1121>`_):
2130
+
2131
+ .. code:: c++
2132
+
2133
+ std::unique_ptr<int> p = ...;
2134
+ fmt::print("{}", fmt::ptr(p)); // prints p as a pointer
2135
+
2136
+ Thanks `@sighingnow (Tao He) <https://github.com/sighingnow>`_.
2137
+
2138
+ * Made ``print`` and ``vprint`` report I/O errors
2139
+ (`#1098 <https://github.com/fmtlib/fmt/issues/1098>`_,
2140
+ `#1099 <https://github.com/fmtlib/fmt/pull/1099>`_).
2141
+ Thanks `@BillyDonahue (Billy Donahue) <https://github.com/BillyDonahue>`_.
2142
+
2143
+ * Marked deprecated APIs with the ``[[deprecated]]`` attribute and removed
2144
+ internal uses of deprecated APIs
2145
+ (`#1022 <https://github.com/fmtlib/fmt/pull/1022>`_).
2146
+ Thanks `@eliaskosunen (Elias Kosunen) <https://github.com/eliaskosunen>`_.
2147
+
2148
+ * Modernized the codebase using more C++11 features and removing workarounds.
2149
+ Most importantly, ``buffer_context`` is now an alias template, so
2150
+ use ``buffer_context<T>`` instead of ``buffer_context<T>::type``.
2151
+ These features require GCC 4.8 or later.
2152
+
2153
+ * ``formatter`` specializations now always take precedence over implicit
2154
+ conversions to ``int`` and the undocumented ``convert_to_int`` trait
2155
+ is now deprecated.
2156
+
2157
+ * Moved the undocumented ``basic_writer``, ``writer``, and ``wwriter`` types
2158
+ to the ``internal`` namespace.
2159
+
2160
+ * Removed deprecated ``basic_format_context::begin()``. Use ``out()`` instead.
2161
+
2162
+ * Disallowed passing the result of ``join`` as an lvalue to prevent misuse.
2163
+
2164
+ * Refactored the undocumented structs that represent parsed format specifiers
2165
+ to simplify the API and allow multibyte fill.
2166
+
2167
+ * Moved SFINAE to template parameters to reduce symbol sizes.
2168
+
2169
+ * Switched to ``fputws`` for writing wide strings so that it's no longer
2170
+ required to call ``_setmode`` on Windows
2171
+ (`#1229 <https://github.com/fmtlib/fmt/issues/1229>`_,
2172
+ `#1243 <https://github.com/fmtlib/fmt/pull/1243>`_).
2173
+ Thanks `@jackoalan (Jack Andersen) <https://github.com/jackoalan>`_.
2174
+
2175
+ * Improved literal-based API
2176
+ (`#1254 <https://github.com/fmtlib/fmt/pull/1254>`_).
2177
+ Thanks `@sylveon (Charles Milette) <https://github.com/sylveon>`_.
2178
+
2179
+ * Added support for exotic platforms without ``uintptr_t`` such as IBM i
2180
+ (AS/400) which has 128-bit pointers and only 64-bit integers
2181
+ (`#1059 <https://github.com/fmtlib/fmt/issues/1059>`_).
2182
+
2183
+ * Added `Sublime Text syntax highlighting config
2184
+ <https://github.com/fmtlib/fmt/blob/master/support/C%2B%2B.sublime-syntax>`_
2185
+ (`#1037 <https://github.com/fmtlib/fmt/issues/1037>`_).
2186
+ Thanks `@Kronuz (Germán Méndez Bravo) <https://github.com/Kronuz>`_.
2187
+
2188
+ * Added the ``FMT_ENFORCE_COMPILE_STRING`` macro to enforce the use of
2189
+ compile-time format strings
2190
+ (`#1231 <https://github.com/fmtlib/fmt/pull/1231>`_).
2191
+ Thanks `@jackoalan (Jack Andersen) <https://github.com/jackoalan>`_.
2192
+
2193
+ * Stopped setting ``CMAKE_BUILD_TYPE`` if {fmt} is a subproject
2194
+ (`#1081 <https://github.com/fmtlib/fmt/issues/1081>`_).
2195
+
2196
+ * Various build improvements
2197
+ (`#1039 <https://github.com/fmtlib/fmt/pull/1039>`_,
2198
+ `#1078 <https://github.com/fmtlib/fmt/pull/1078>`_,
2199
+ `#1091 <https://github.com/fmtlib/fmt/pull/1091>`_,
2200
+ `#1103 <https://github.com/fmtlib/fmt/pull/1103>`_,
2201
+ `#1177 <https://github.com/fmtlib/fmt/pull/1177>`_).
2202
+ Thanks `@luncliff (Park DongHa) <https://github.com/luncliff>`_,
2203
+ `@jasonszang (Jason Shuo Zang) <https://github.com/jasonszang>`_,
2204
+ `@olafhering (Olaf Hering) <https://github.com/olafhering>`_,
2205
+ `@Lecetem <https://github.com/Lectem>`_,
2206
+ `@pauldreik (Paul Dreik) <https://github.com/pauldreik>`_.
2207
+
2208
+ * Improved documentation
2209
+ (`#1049 <https://github.com/fmtlib/fmt/issues/1049>`_,
2210
+ `#1051 <https://github.com/fmtlib/fmt/pull/1051>`_,
2211
+ `#1083 <https://github.com/fmtlib/fmt/pull/1083>`_,
2212
+ `#1113 <https://github.com/fmtlib/fmt/pull/1113>`_,
2213
+ `#1114 <https://github.com/fmtlib/fmt/pull/1114>`_,
2214
+ `#1146 <https://github.com/fmtlib/fmt/issues/1146>`_,
2215
+ `#1180 <https://github.com/fmtlib/fmt/issues/1180>`_,
2216
+ `#1250 <https://github.com/fmtlib/fmt/pull/1250>`_,
2217
+ `#1252 <https://github.com/fmtlib/fmt/pull/1252>`_,
2218
+ `#1265 <https://github.com/fmtlib/fmt/pull/1265>`_).
2219
+ Thanks `@mikelui (Michael Lui) <https://github.com/mikelui>`_,
2220
+ `@foonathan (Jonathan Müller) <https://github.com/foonathan>`_,
2221
+ `@BillyDonahue (Billy Donahue) <https://github.com/BillyDonahue>`_,
2222
+ `@jwakely (Jonathan Wakely) <https://github.com/jwakely>`_,
2223
+ `@kaisbe (Kais Ben Salah) <https://github.com/kaisbe>`_,
2224
+ `@sdebionne (Samuel Debionne) <https://github.com/sdebionne>`_.
2225
+
2226
+ * Fixed ambiguous formatter specialization in ``fmt/ranges.h``
2227
+ (`#1123 <https://github.com/fmtlib/fmt/issues/1123>`_).
2228
+
2229
+ * Fixed formatting of a non-empty ``std::filesystem::path`` which is an
2230
+ infinitely deep range of its components
2231
+ (`#1268 <https://github.com/fmtlib/fmt/issues/1268>`_).
2232
+
2233
+ * Fixed handling of general output iterators when formatting characters
2234
+ (`#1056 <https://github.com/fmtlib/fmt/issues/1056>`_,
2235
+ `#1058 <https://github.com/fmtlib/fmt/pull/1058>`_).
2236
+ Thanks `@abolz (Alexander Bolz) <https://github.com/abolz>`_.
2237
+
2238
+ * Fixed handling of output iterators in ``formatter`` specialization for
2239
+ ranges (`#1064 <https://github.com/fmtlib/fmt/issues/1064>`_).
2240
+
2241
+ * Fixed handling of exotic character types
2242
+ (`#1188 <https://github.com/fmtlib/fmt/issues/1188>`_).
2243
+
2244
+ * Made chrono formatting work with exceptions disabled
2245
+ (`#1062 <https://github.com/fmtlib/fmt/issues/1062>`_).
2246
+
2247
+ * Fixed DLL visibility issues
2248
+ (`#1134 <https://github.com/fmtlib/fmt/pull/1134>`_,
2249
+ `#1147 <https://github.com/fmtlib/fmt/pull/1147>`_).
2250
+ Thanks `@denchat <https://github.com/denchat>`_.
2251
+
2252
+ * Disabled the use of UDL template extension on GCC 9
2253
+ (`#1148 <https://github.com/fmtlib/fmt/issues/1148>`_).
2254
+
2255
+ * Removed misplaced ``format`` compile-time checks from ``printf``
2256
+ (`#1173 <https://github.com/fmtlib/fmt/issues/1173>`_).
2257
+
2258
+ * Fixed issues in the experimental floating-point formatter
2259
+ (`#1072 <https://github.com/fmtlib/fmt/issues/1072>`_,
2260
+ `#1129 <https://github.com/fmtlib/fmt/issues/1129>`_,
2261
+ `#1153 <https://github.com/fmtlib/fmt/issues/1153>`_,
2262
+ `#1155 <https://github.com/fmtlib/fmt/pull/1155>`_,
2263
+ `#1210 <https://github.com/fmtlib/fmt/issues/1210>`_,
2264
+ `#1222 <https://github.com/fmtlib/fmt/issues/1222>`_).
2265
+ Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
2266
+
2267
+ * Fixed bugs discovered by fuzzing or during fuzzing integration
2268
+ (`#1124 <https://github.com/fmtlib/fmt/issues/1124>`_,
2269
+ `#1127 <https://github.com/fmtlib/fmt/issues/1127>`_,
2270
+ `#1132 <https://github.com/fmtlib/fmt/issues/1132>`_,
2271
+ `#1135 <https://github.com/fmtlib/fmt/pull/1135>`_,
2272
+ `#1136 <https://github.com/fmtlib/fmt/issues/1136>`_,
2273
+ `#1141 <https://github.com/fmtlib/fmt/issues/1141>`_,
2274
+ `#1142 <https://github.com/fmtlib/fmt/issues/1142>`_,
2275
+ `#1178 <https://github.com/fmtlib/fmt/issues/1178>`_,
2276
+ `#1179 <https://github.com/fmtlib/fmt/issues/1179>`_,
2277
+ `#1194 <https://github.com/fmtlib/fmt/issues/1194>`_).
2278
+ Thanks `@pauldreik (Paul Dreik) <https://github.com/pauldreik>`_.
2279
+
2280
+ * Fixed building tests on FreeBSD and Hurd
2281
+ (`#1043 <https://github.com/fmtlib/fmt/issues/1043>`_).
2282
+ Thanks `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
2283
+
2284
+ * Fixed various warnings and compilation issues
2285
+ (`#998 <https://github.com/fmtlib/fmt/pull/998>`_,
2286
+ `#1006 <https://github.com/fmtlib/fmt/pull/1006>`_,
2287
+ `#1008 <https://github.com/fmtlib/fmt/issues/1008>`_,
2288
+ `#1011 <https://github.com/fmtlib/fmt/issues/1011>`_,
2289
+ `#1025 <https://github.com/fmtlib/fmt/issues/1025>`_,
2290
+ `#1027 <https://github.com/fmtlib/fmt/pull/1027>`_,
2291
+ `#1028 <https://github.com/fmtlib/fmt/pull/1028>`_,
2292
+ `#1029 <https://github.com/fmtlib/fmt/pull/1029>`_,
2293
+ `#1030 <https://github.com/fmtlib/fmt/pull/1030>`_,
2294
+ `#1031 <https://github.com/fmtlib/fmt/pull/1031>`_,
2295
+ `#1054 <https://github.com/fmtlib/fmt/pull/1054>`_,
2296
+ `#1063 <https://github.com/fmtlib/fmt/issues/1063>`_,
2297
+ `#1068 <https://github.com/fmtlib/fmt/pull/1068>`_,
2298
+ `#1074 <https://github.com/fmtlib/fmt/pull/1074>`_,
2299
+ `#1075 <https://github.com/fmtlib/fmt/pull/1075>`_,
2300
+ `#1079 <https://github.com/fmtlib/fmt/pull/1079>`_,
2301
+ `#1086 <https://github.com/fmtlib/fmt/pull/1086>`_,
2302
+ `#1088 <https://github.com/fmtlib/fmt/issues/1088>`_,
2303
+ `#1089 <https://github.com/fmtlib/fmt/pull/1089>`_,
2304
+ `#1094 <https://github.com/fmtlib/fmt/pull/1094>`_,
2305
+ `#1101 <https://github.com/fmtlib/fmt/issues/1101>`_,
2306
+ `#1102 <https://github.com/fmtlib/fmt/pull/1102>`_,
2307
+ `#1105 <https://github.com/fmtlib/fmt/issues/1105>`_,
2308
+ `#1107 <https://github.com/fmtlib/fmt/pull/1107>`_,
2309
+ `#1115 <https://github.com/fmtlib/fmt/issues/1115>`_,
2310
+ `#1117 <https://github.com/fmtlib/fmt/issues/1117>`_,
2311
+ `#1118 <https://github.com/fmtlib/fmt/issues/1118>`_,
2312
+ `#1120 <https://github.com/fmtlib/fmt/issues/1120>`_,
2313
+ `#1123 <https://github.com/fmtlib/fmt/issues/1123>`_,
2314
+ `#1139 <https://github.com/fmtlib/fmt/pull/1139>`_,
2315
+ `#1140 <https://github.com/fmtlib/fmt/issues/1140>`_,
2316
+ `#1143 <https://github.com/fmtlib/fmt/issues/1143>`_,
2317
+ `#1144 <https://github.com/fmtlib/fmt/pull/1144>`_,
2318
+ `#1150 <https://github.com/fmtlib/fmt/pull/1150>`_,
2319
+ `#1151 <https://github.com/fmtlib/fmt/pull/1151>`_,
2320
+ `#1152 <https://github.com/fmtlib/fmt/issues/1152>`_,
2321
+ `#1154 <https://github.com/fmtlib/fmt/issues/1154>`_,
2322
+ `#1156 <https://github.com/fmtlib/fmt/issues/1156>`_,
2323
+ `#1159 <https://github.com/fmtlib/fmt/pull/1159>`_,
2324
+ `#1175 <https://github.com/fmtlib/fmt/issues/1175>`_,
2325
+ `#1181 <https://github.com/fmtlib/fmt/issues/1181>`_,
2326
+ `#1186 <https://github.com/fmtlib/fmt/issues/1186>`_,
2327
+ `#1187 <https://github.com/fmtlib/fmt/pull/1187>`_,
2328
+ `#1191 <https://github.com/fmtlib/fmt/pull/1191>`_,
2329
+ `#1197 <https://github.com/fmtlib/fmt/issues/1197>`_,
2330
+ `#1200 <https://github.com/fmtlib/fmt/issues/1200>`_,
2331
+ `#1203 <https://github.com/fmtlib/fmt/issues/1203>`_,
2332
+ `#1205 <https://github.com/fmtlib/fmt/issues/1205>`_,
2333
+ `#1206 <https://github.com/fmtlib/fmt/pull/1206>`_,
2334
+ `#1213 <https://github.com/fmtlib/fmt/issues/1213>`_,
2335
+ `#1214 <https://github.com/fmtlib/fmt/issues/1214>`_,
2336
+ `#1217 <https://github.com/fmtlib/fmt/pull/1217>`_,
2337
+ `#1228 <https://github.com/fmtlib/fmt/issues/1228>`_,
2338
+ `#1230 <https://github.com/fmtlib/fmt/pull/1230>`_,
2339
+ `#1232 <https://github.com/fmtlib/fmt/issues/1232>`_,
2340
+ `#1235 <https://github.com/fmtlib/fmt/pull/1235>`_,
2341
+ `#1236 <https://github.com/fmtlib/fmt/pull/1236>`_,
2342
+ `#1240 <https://github.com/fmtlib/fmt/issues/1240>`_).
2343
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_,
2344
+ `@mwinterb <https://github.com/mwinterb>`_,
2345
+ `@eliaskosunen (Elias Kosunen) <https://github.com/eliaskosunen>`_,
2346
+ `@morinmorin <https://github.com/morinmorin>`_,
2347
+ `@ricco19 (Brian Ricciardelli) <https://github.com/ricco19>`_,
2348
+ `@waywardmonkeys (Bruce Mitchener) <https://github.com/waywardmonkeys>`_,
2349
+ `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_,
2350
+ `@remyabel <https://github.com/remyabel>`_,
2351
+ `@pauldreik (Paul Dreik) <https://github.com/pauldreik>`_,
2352
+ `@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
2353
+ `@rcane (Ronny Krüger) <https://github.com/rcane>`_,
2354
+ `@mocabe <https://github.com/mocabe>`_,
2355
+ `@denchat <https://github.com/denchat>`_,
2356
+ `@cjdb (Christopher Di Bella) <https://github.com/cjdb>`_,
2357
+ `@HazardyKnusperkeks (Björn Schäpers) <https://github.com/HazardyKnusperkeks>`_,
2358
+ `@vedranmiletic (Vedran Miletić) <https://github.com/vedranmiletic>`_,
2359
+ `@jackoalan (Jack Andersen) <https://github.com/jackoalan>`_,
2360
+ `@DaanDeMeyer (Daan De Meyer) <https://github.com/DaanDeMeyer>`_,
2361
+ `@starkmapper (Mark Stapper) <https://github.com/starkmapper>`_.
2362
+
2363
+ 5.3.0 - 2018-12-28
2364
+ ------------------
2365
+
2366
+ * Introduced experimental chrono formatting support:
2367
+
2368
+ .. code:: c++
2369
+
2370
+ #include <fmt/chrono.h>
2371
+
2372
+ int main() {
2373
+ using namespace std::literals::chrono_literals;
2374
+ fmt::print("Default format: {} {}\n", 42s, 100ms);
2375
+ fmt::print("strftime-like format: {:%H:%M:%S}\n", 3h + 15min + 30s);
2376
+ }
2377
+
2378
+ prints::
2379
+
2380
+ Default format: 42s 100ms
2381
+ strftime-like format: 03:15:30
2382
+
2383
+ * Added experimental support for emphasis (bold, italic, underline,
2384
+ strikethrough), colored output to a file stream, and improved colored
2385
+ formatting API
2386
+ (`#961 <https://github.com/fmtlib/fmt/pull/961>`_,
2387
+ `#967 <https://github.com/fmtlib/fmt/pull/967>`_,
2388
+ `#973 <https://github.com/fmtlib/fmt/pull/973>`_):
2389
+
2390
+ .. code:: c++
2391
+
2392
+ #include <fmt/color.h>
2393
+
2394
+ int main() {
2395
+ print(fg(fmt::color::crimson) | fmt::emphasis::bold,
2396
+ "Hello, {}!\n", "world");
2397
+ print(fg(fmt::color::floral_white) | bg(fmt::color::slate_gray) |
2398
+ fmt::emphasis::underline, "Hello, {}!\n", "мир");
2399
+ print(fg(fmt::color::steel_blue) | fmt::emphasis::italic,
2400
+ "Hello, {}!\n", "世界");
2401
+ }
2402
+
2403
+ prints the following on modern terminals with RGB color support:
2404
+
2405
+ .. image:: https://user-images.githubusercontent.com/576385/
2406
+ 50405788-b66e7500-076e-11e9-9592-7324d1f951d8.png
2407
+
2408
+ Thanks `@Rakete1111 (Nicolas) <https://github.com/Rakete1111>`_.
2409
+
2410
+ * Added support for 4-bit terminal colors
2411
+ (`#968 <https://github.com/fmtlib/fmt/issues/968>`_,
2412
+ `#974 <https://github.com/fmtlib/fmt/pull/974>`_)
2413
+
2414
+ .. code:: c++
2415
+
2416
+ #include <fmt/color.h>
2417
+
2418
+ int main() {
2419
+ print(fg(fmt::terminal_color::red), "stop\n");
2420
+ }
2421
+
2422
+ Note that these colors vary by terminal:
2423
+
2424
+ .. image:: https://user-images.githubusercontent.com/576385/
2425
+ 50405925-dbfc7e00-0770-11e9-9b85-333fab0af9ac.png
2426
+
2427
+ Thanks `@Rakete1111 (Nicolas) <https://github.com/Rakete1111>`_.
2428
+
2429
+ * Parameterized formatting functions on the type of the format string
2430
+ (`#880 <https://github.com/fmtlib/fmt/issues/880>`_,
2431
+ `#881 <https://github.com/fmtlib/fmt/pull/881>`_,
2432
+ `#883 <https://github.com/fmtlib/fmt/pull/883>`_,
2433
+ `#885 <https://github.com/fmtlib/fmt/pull/885>`_,
2434
+ `#897 <https://github.com/fmtlib/fmt/pull/897>`_,
2435
+ `#920 <https://github.com/fmtlib/fmt/issues/920>`_).
2436
+ Any object of type ``S`` that has an overloaded ``to_string_view(const S&)``
2437
+ returning ``fmt::string_view`` can be used as a format string:
2438
+
2439
+ .. code:: c++
2440
+
2441
+ namespace my_ns {
2442
+ inline string_view to_string_view(const my_string& s) {
2443
+ return {s.data(), s.length()};
2444
+ }
2445
+ }
2446
+
2447
+ std::string message = fmt::format(my_string("The answer is {}."), 42);
2448
+
2449
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2450
+
2451
+ * Made ``std::string_view`` work as a format string
2452
+ (`#898 <https://github.com/fmtlib/fmt/pull/898>`_):
2453
+
2454
+ .. code:: c++
2455
+
2456
+ auto message = fmt::format(std::string_view("The answer is {}."), 42);
2457
+
2458
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2459
+
2460
+ * Added wide string support to compile-time format string checks
2461
+ (`#924 <https://github.com/fmtlib/fmt/pull/924>`_):
2462
+
2463
+ .. code:: c++
2464
+
2465
+ print(fmt(L"{:f}"), 42); // compile-time error: invalid type specifier
2466
+
2467
+ Thanks `@XZiar <https://github.com/XZiar>`_.
2468
+
2469
+ * Made colored print functions work with wide strings
2470
+ (`#867 <https://github.com/fmtlib/fmt/pull/867>`_):
2471
+
2472
+ .. code:: c++
2473
+
2474
+ #include <fmt/color.h>
2475
+
2476
+ int main() {
2477
+ print(fg(fmt::color::red), L"{}\n", 42);
2478
+ }
2479
+
2480
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2481
+
2482
+ * Introduced experimental Unicode support
2483
+ (`#628 <https://github.com/fmtlib/fmt/issues/628>`_,
2484
+ `#891 <https://github.com/fmtlib/fmt/pull/891>`_):
2485
+
2486
+ .. code:: c++
2487
+
2488
+ using namespace fmt::literals;
2489
+ auto s = fmt::format("{:*^5}"_u, "🤡"_u); // s == "**🤡**"_u
2490
+
2491
+ * Improved locale support:
2492
+
2493
+ .. code:: c++
2494
+
2495
+ #include <fmt/locale.h>
2496
+
2497
+ struct numpunct : std::numpunct<char> {
2498
+ protected:
2499
+ char do_thousands_sep() const override { return '~'; }
2500
+ };
2501
+
2502
+ std::locale loc;
2503
+ auto s = fmt::format(std::locale(loc, new numpunct()), "{:n}", 1234567);
2504
+ // s == "1~234~567"
2505
+
2506
+ * Constrained formatting functions on proper iterator types
2507
+ (`#921 <https://github.com/fmtlib/fmt/pull/921>`_).
2508
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2509
+
2510
+ * Added ``make_printf_args`` and ``make_wprintf_args`` functions
2511
+ (`#934 <https://github.com/fmtlib/fmt/pull/934>`_).
2512
+ Thanks `@tnovotny <https://github.com/tnovotny>`_.
2513
+
2514
+ * Deprecated ``fmt::visit``, ``parse_context``, and ``wparse_context``.
2515
+ Use ``fmt::visit_format_arg``, ``format_parse_context``, and
2516
+ ``wformat_parse_context`` instead.
2517
+
2518
+ * Removed undocumented ``basic_fixed_buffer`` which has been superseded by the
2519
+ iterator-based API
2520
+ (`#873 <https://github.com/fmtlib/fmt/issues/873>`_,
2521
+ `#902 <https://github.com/fmtlib/fmt/pull/902>`_).
2522
+ Thanks `@superfunc (hollywood programmer) <https://github.com/superfunc>`_.
2523
+
2524
+ * Disallowed repeated leading zeros in an argument ID:
2525
+
2526
+ .. code:: c++
2527
+
2528
+ fmt::print("{000}", 42); // error
2529
+
2530
+ * Reintroduced support for gcc 4.4.
2531
+
2532
+ * Fixed compilation on platforms with exotic ``double``
2533
+ (`#878 <https://github.com/fmtlib/fmt/issues/878>`_).
2534
+
2535
+ * Improved documentation
2536
+ (`#164 <https://github.com/fmtlib/fmt/issues/164>`_,
2537
+ `#877 <https://github.com/fmtlib/fmt/issues/877>`_,
2538
+ `#901 <https://github.com/fmtlib/fmt/pull/901>`_,
2539
+ `#906 <https://github.com/fmtlib/fmt/pull/906>`_,
2540
+ `#979 <https://github.com/fmtlib/fmt/pull/979>`_).
2541
+ Thanks `@kookjr (Mathew Cucuzella) <https://github.com/kookjr>`_,
2542
+ `@DarkDimius (Dmitry Petrashko) <https://github.com/DarkDimius>`_,
2543
+ `@HecticSerenity <https://github.com/HecticSerenity>`_.
2544
+
2545
+ * Added pkgconfig support which makes it easier to consume the library from
2546
+ meson and other build systems
2547
+ (`#916 <https://github.com/fmtlib/fmt/pull/916>`_).
2548
+ Thanks `@colemickens (Cole Mickens) <https://github.com/colemickens>`_.
2549
+
2550
+ * Various build improvements
2551
+ (`#909 <https://github.com/fmtlib/fmt/pull/909>`_,
2552
+ `#926 <https://github.com/fmtlib/fmt/pull/926>`_,
2553
+ `#937 <https://github.com/fmtlib/fmt/pull/937>`_,
2554
+ `#953 <https://github.com/fmtlib/fmt/pull/953>`_,
2555
+ `#959 <https://github.com/fmtlib/fmt/pull/959>`_).
2556
+ Thanks `@tchaikov (Kefu Chai) <https://github.com/tchaikov>`_,
2557
+ `@luncliff (Park DongHa) <https://github.com/luncliff>`_,
2558
+ `@AndreasSchoenle (Andreas Schönle) <https://github.com/AndreasSchoenle>`_,
2559
+ `@hotwatermorning <https://github.com/hotwatermorning>`_,
2560
+ `@Zefz (JohanJansen) <https://github.com/Zefz>`_.
2561
+
2562
+ * Improved ``string_view`` construction performance
2563
+ (`#914 <https://github.com/fmtlib/fmt/pull/914>`_).
2564
+ Thanks `@gabime (Gabi Melman) <https://github.com/gabime>`_.
2565
+
2566
+ * Fixed non-matching char types
2567
+ (`#895 <https://github.com/fmtlib/fmt/pull/895>`_).
2568
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2569
+
2570
+ * Fixed ``format_to_n`` with ``std::back_insert_iterator``
2571
+ (`#913 <https://github.com/fmtlib/fmt/pull/913>`_).
2572
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2573
+
2574
+ * Fixed locale-dependent formatting
2575
+ (`#905 <https://github.com/fmtlib/fmt/issues/905>`_).
2576
+
2577
+ * Fixed various compiler warnings and errors
2578
+ (`#882 <https://github.com/fmtlib/fmt/pull/882>`_,
2579
+ `#886 <https://github.com/fmtlib/fmt/pull/886>`_,
2580
+ `#933 <https://github.com/fmtlib/fmt/pull/933>`_,
2581
+ `#941 <https://github.com/fmtlib/fmt/pull/941>`_,
2582
+ `#931 <https://github.com/fmtlib/fmt/issues/931>`_,
2583
+ `#943 <https://github.com/fmtlib/fmt/pull/943>`_,
2584
+ `#954 <https://github.com/fmtlib/fmt/pull/954>`_,
2585
+ `#956 <https://github.com/fmtlib/fmt/pull/956>`_,
2586
+ `#962 <https://github.com/fmtlib/fmt/pull/962>`_,
2587
+ `#965 <https://github.com/fmtlib/fmt/issues/965>`_,
2588
+ `#977 <https://github.com/fmtlib/fmt/issues/977>`_,
2589
+ `#983 <https://github.com/fmtlib/fmt/pull/983>`_,
2590
+ `#989 <https://github.com/fmtlib/fmt/pull/989>`_).
2591
+ Thanks `@Luthaf (Guillaume Fraux) <https://github.com/Luthaf>`_,
2592
+ `@stevenhoving (Steven Hoving) <https://github.com/stevenhoving>`_,
2593
+ `@christinaa (Kristina Brooks) <https://github.com/christinaa>`_,
2594
+ `@lgritz (Larry Gritz) <https://github.com/lgritz>`_,
2595
+ `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_,
2596
+ `@0x8000-0000 (Sign Bit) <https://github.com/0x8000-0000>`_,
2597
+ `@liuping1997 <https://github.com/liuping1997>`_.
2598
+
2599
+ 5.2.1 - 2018-09-21
2600
+ ------------------
2601
+
2602
+ * Fixed ``visit`` lookup issues on gcc 7 & 8
2603
+ (`#870 <https://github.com/fmtlib/fmt/pull/870>`_).
2604
+ Thanks `@medithe <https://github.com/medithe>`_.
2605
+
2606
+ * Fixed linkage errors on older gcc.
2607
+
2608
+ * Prevented ``fmt/range.h`` from specializing ``fmt::basic_string_view``
2609
+ (`#865 <https://github.com/fmtlib/fmt/issues/865>`_,
2610
+ `#868 <https://github.com/fmtlib/fmt/pull/868>`_).
2611
+ Thanks `@hhggit (dual) <https://github.com/hhggit>`_.
2612
+
2613
+ * Improved error message when formatting unknown types
2614
+ (`#872 <https://github.com/fmtlib/fmt/pull/872>`_).
2615
+ Thanks `@foonathan (Jonathan Müller) <https://github.com/foonathan>`_,
2616
+
2617
+ * Disabled templated user-defined literals when compiled under nvcc
2618
+ (`#875 <https://github.com/fmtlib/fmt/pull/875>`_).
2619
+ Thanks `@CandyGumdrop (Candy Gumdrop) <https://github.com/CandyGumdrop>`_,
2620
+
2621
+ * Fixed ``format_to`` formatting to ``wmemory_buffer``
2622
+ (`#874 <https://github.com/fmtlib/fmt/issues/874>`_).
2623
+
2624
+ 5.2.0 - 2018-09-13
2625
+ ------------------
2626
+
2627
+ * Optimized format string parsing and argument processing which resulted in up
2628
+ to 5x speed up on long format strings and significant performance boost on
2629
+ various benchmarks. For example, version 5.2 is 2.22x faster than 5.1 on
2630
+ decimal integer formatting with ``format_to`` (macOS, clang-902.0.39.2):
2631
+
2632
+ ================== ======= =======
2633
+ Method Time, s Speedup
2634
+ ================== ======= =======
2635
+ fmt::format 5.1 0.58
2636
+ fmt::format 5.2 0.35 1.66x
2637
+ fmt::format_to 5.1 0.51
2638
+ fmt::format_to 5.2 0.23 2.22x
2639
+ sprintf 0.71
2640
+ std::to_string 1.01
2641
+ std::stringstream 1.73
2642
+ ================== ======= =======
2643
+
2644
+ * Changed the ``fmt`` macro from opt-out to opt-in to prevent name collisions.
2645
+ To enable it define the ``FMT_STRING_ALIAS`` macro to 1 before including
2646
+ ``fmt/format.h``:
2647
+
2648
+ .. code:: c++
2649
+
2650
+ #define FMT_STRING_ALIAS 1
2651
+ #include <fmt/format.h>
2652
+ std::string answer = format(fmt("{}"), 42);
2653
+
2654
+ * Added compile-time format string checks to ``format_to`` overload that takes
2655
+ ``fmt::memory_buffer`` (`#783 <https://github.com/fmtlib/fmt/issues/783>`_):
2656
+
2657
+ .. code:: c++
2658
+
2659
+ fmt::memory_buffer buf;
2660
+ // Compile-time error: invalid type specifier.
2661
+ fmt::format_to(buf, fmt("{:d}"), "foo");
2662
+
2663
+ * Moved experimental color support to ``fmt/color.h`` and enabled the
2664
+ new API by default. The old API can be enabled by defining the
2665
+ ``FMT_DEPRECATED_COLORS`` macro.
2666
+
2667
+ * Added formatting support for types explicitly convertible to
2668
+ ``fmt::string_view``:
2669
+
2670
+ .. code:: c++
2671
+
2672
+ struct foo {
2673
+ explicit operator fmt::string_view() const { return "foo"; }
2674
+ };
2675
+ auto s = format("{}", foo());
2676
+
2677
+ In particular, this makes formatting function work with
2678
+ ``folly::StringPiece``.
2679
+
2680
+ * Implemented preliminary support for ``char*_t`` by replacing the ``format``
2681
+ function overloads with a single function template parameterized on the string
2682
+ type.
2683
+
2684
+ * Added support for dynamic argument lists
2685
+ (`#814 <https://github.com/fmtlib/fmt/issues/814>`_,
2686
+ `#819 <https://github.com/fmtlib/fmt/pull/819>`_).
2687
+ Thanks `@MikePopoloski (Michael Popoloski)
2688
+ <https://github.com/MikePopoloski>`_.
2689
+
2690
+ * Reduced executable size overhead for embedded targets using newlib nano by
2691
+ making locale dependency optional
2692
+ (`#839 <https://github.com/fmtlib/fmt/pull/839>`_).
2693
+ Thanks `@teajay-fr (Thomas Benard) <https://github.com/teajay-fr>`_.
2694
+
2695
+ * Keep ``noexcept`` specifier when exceptions are disabled
2696
+ (`#801 <https://github.com/fmtlib/fmt/issues/801>`_,
2697
+ `#810 <https://github.com/fmtlib/fmt/pull/810>`_).
2698
+ Thanks `@qis (Alexej Harm) <https://github.com/qis>`_.
2699
+
2700
+ * Fixed formatting of user-defined types providing ``operator<<`` with
2701
+ ``format_to_n``
2702
+ (`#806 <https://github.com/fmtlib/fmt/pull/806>`_).
2703
+ Thanks `@mkurdej (Marek Kurdej) <https://github.com/mkurdej>`_.
2704
+
2705
+ * Fixed dynamic linkage of new symbols
2706
+ (`#808 <https://github.com/fmtlib/fmt/issues/808>`_).
2707
+
2708
+ * Fixed global initialization issue
2709
+ (`#807 <https://github.com/fmtlib/fmt/issues/807>`_):
2710
+
2711
+ .. code:: c++
2712
+
2713
+ // This works on compilers with constexpr support.
2714
+ static const std::string answer = fmt::format("{}", 42);
2715
+
2716
+ * Fixed various compiler warnings and errors
2717
+ (`#804 <https://github.com/fmtlib/fmt/pull/804>`_,
2718
+ `#809 <https://github.com/fmtlib/fmt/issues/809>`_,
2719
+ `#811 <https://github.com/fmtlib/fmt/pull/811>`_,
2720
+ `#822 <https://github.com/fmtlib/fmt/issues/822>`_,
2721
+ `#827 <https://github.com/fmtlib/fmt/pull/827>`_,
2722
+ `#830 <https://github.com/fmtlib/fmt/issues/830>`_,
2723
+ `#838 <https://github.com/fmtlib/fmt/pull/838>`_,
2724
+ `#843 <https://github.com/fmtlib/fmt/issues/843>`_,
2725
+ `#844 <https://github.com/fmtlib/fmt/pull/844>`_,
2726
+ `#851 <https://github.com/fmtlib/fmt/issues/851>`_,
2727
+ `#852 <https://github.com/fmtlib/fmt/pull/852>`_,
2728
+ `#854 <https://github.com/fmtlib/fmt/pull/854>`_).
2729
+ Thanks `@henryiii (Henry Schreiner) <https://github.com/henryiii>`_,
2730
+ `@medithe <https://github.com/medithe>`_, and
2731
+ `@eliasdaler (Elias Daler) <https://github.com/eliasdaler>`_.
2732
+
2733
+ 5.1.0 - 2018-07-05
2734
+ ------------------
2735
+
2736
+ * Added experimental support for RGB color output enabled with
2737
+ the ``FMT_EXTENDED_COLORS`` macro:
2738
+
2739
+ .. code:: c++
2740
+
2741
+ #define FMT_EXTENDED_COLORS
2742
+ #define FMT_HEADER_ONLY // or compile fmt with FMT_EXTENDED_COLORS defined
2743
+ #include <fmt/format.h>
2744
+
2745
+ fmt::print(fmt::color::steel_blue, "Some beautiful text");
2746
+
2747
+ The old API (the ``print_colored`` and ``vprint_colored`` functions and the
2748
+ ``color`` enum) is now deprecated.
2749
+ (`#762 <https://github.com/fmtlib/fmt/issues/762>`_
2750
+ `#767 <https://github.com/fmtlib/fmt/pull/767>`_).
2751
+ thanks `@Remotion (Remo) <https://github.com/Remotion>`_.
2752
+
2753
+ * Added quotes to strings in ranges and tuples
2754
+ (`#766 <https://github.com/fmtlib/fmt/pull/766>`_).
2755
+ Thanks `@Remotion (Remo) <https://github.com/Remotion>`_.
2756
+
2757
+ * Made ``format_to`` work with ``basic_memory_buffer``
2758
+ (`#776 <https://github.com/fmtlib/fmt/issues/776>`_).
2759
+
2760
+ * Added ``vformat_to_n`` and ``wchar_t`` overload of ``format_to_n``
2761
+ (`#764 <https://github.com/fmtlib/fmt/issues/764>`_,
2762
+ `#769 <https://github.com/fmtlib/fmt/issues/769>`_).
2763
+
2764
+ * Made ``is_range`` and ``is_tuple_like`` part of public (experimental) API
2765
+ to allow specialization for user-defined types
2766
+ (`#751 <https://github.com/fmtlib/fmt/issues/751>`_,
2767
+ `#759 <https://github.com/fmtlib/fmt/pull/759>`_).
2768
+ Thanks `@drrlvn (Dror Levin) <https://github.com/drrlvn>`_.
2769
+
2770
+ * Added more compilers to continuous integration and increased ``FMT_PEDANTIC``
2771
+ warning levels
2772
+ (`#736 <https://github.com/fmtlib/fmt/pull/736>`_).
2773
+ Thanks `@eliaskosunen (Elias Kosunen) <https://github.com/eliaskosunen>`_.
2774
+
2775
+ * Fixed compilation with MSVC 2013.
2776
+
2777
+ * Fixed handling of user-defined types in ``format_to``
2778
+ (`#793 <https://github.com/fmtlib/fmt/issues/793>`_).
2779
+
2780
+ * Forced linking of inline ``vformat`` functions into the library
2781
+ (`#795 <https://github.com/fmtlib/fmt/issues/795>`_).
2782
+
2783
+ * Fixed incorrect call to on_align in ``'{:}='``
2784
+ (`#750 <https://github.com/fmtlib/fmt/issues/750>`_).
2785
+
2786
+ * Fixed floating-point formatting to a non-back_insert_iterator with sign &
2787
+ numeric alignment specified
2788
+ (`#756 <https://github.com/fmtlib/fmt/issues/756>`_).
2789
+
2790
+ * Fixed formatting to an array with ``format_to_n``
2791
+ (`#778 <https://github.com/fmtlib/fmt/issues/778>`_).
2792
+
2793
+ * Fixed formatting of more than 15 named arguments
2794
+ (`#754 <https://github.com/fmtlib/fmt/issues/754>`_).
2795
+
2796
+ * Fixed handling of compile-time strings when including ``fmt/ostream.h``.
2797
+ (`#768 <https://github.com/fmtlib/fmt/issues/768>`_).
2798
+
2799
+ * Fixed various compiler warnings and errors
2800
+ (`#742 <https://github.com/fmtlib/fmt/issues/742>`_,
2801
+ `#748 <https://github.com/fmtlib/fmt/issues/748>`_,
2802
+ `#752 <https://github.com/fmtlib/fmt/issues/752>`_,
2803
+ `#770 <https://github.com/fmtlib/fmt/issues/770>`_,
2804
+ `#775 <https://github.com/fmtlib/fmt/pull/775>`_,
2805
+ `#779 <https://github.com/fmtlib/fmt/issues/779>`_,
2806
+ `#780 <https://github.com/fmtlib/fmt/pull/780>`_,
2807
+ `#790 <https://github.com/fmtlib/fmt/pull/790>`_,
2808
+ `#792 <https://github.com/fmtlib/fmt/pull/792>`_,
2809
+ `#800 <https://github.com/fmtlib/fmt/pull/800>`_).
2810
+ Thanks `@Remotion (Remo) <https://github.com/Remotion>`_,
2811
+ `@gabime (Gabi Melman) <https://github.com/gabime>`_,
2812
+ `@foonathan (Jonathan Müller) <https://github.com/foonathan>`_,
2813
+ `@Dark-Passenger (Dhruv Paranjape) <https://github.com/Dark-Passenger>`_, and
2814
+ `@0x8000-0000 (Sign Bit) <https://github.com/0x8000-0000>`_.
2815
+
2816
+ 5.0.0 - 2018-05-21
2817
+ ------------------
2818
+
2819
+ * Added a requirement for partial C++11 support, most importantly variadic
2820
+ templates and type traits, and dropped ``FMT_VARIADIC_*`` emulation macros.
2821
+ Variadic templates are available since GCC 4.4, Clang 2.9 and MSVC 18.0 (2013).
2822
+ For older compilers use {fmt} `version 4.x
2823
+ <https://github.com/fmtlib/fmt/releases/tag/4.1.0>`_ which continues to be
2824
+ maintained and works with C++98 compilers.
2825
+
2826
+ * Renamed symbols to follow standard C++ naming conventions and proposed a subset
2827
+ of the library for standardization in `P0645R2 Text Formatting
2828
+ <https://wg21.link/P0645>`_.
2829
+
2830
+ * Implemented ``constexpr`` parsing of format strings and `compile-time format
2831
+ string checks
2832
+ <https://fmt.dev/latest/api.html#compile-time-format-string-checks>`_. For
2833
+ example
2834
+
2835
+ .. code:: c++
2836
+
2837
+ #include <fmt/format.h>
2838
+
2839
+ std::string s = format(fmt("{:d}"), "foo");
2840
+
2841
+ gives a compile-time error because ``d`` is an invalid specifier for strings
2842
+ (`godbolt <https://godbolt.org/g/rnCy9Q>`__)::
2843
+
2844
+ ...
2845
+ <source>:4:19: note: in instantiation of function template specialization 'fmt::v5::format<S, char [4]>' requested here
2846
+ std::string s = format(fmt("{:d}"), "foo");
2847
+ ^
2848
+ format.h:1337:13: note: non-constexpr function 'on_error' cannot be used in a constant expression
2849
+ handler.on_error("invalid type specifier");
2850
+
2851
+ Compile-time checks require relaxed ``constexpr`` (C++14 feature) support. If
2852
+ the latter is not available, checks will be performed at runtime.
2853
+
2854
+ * Separated format string parsing and formatting in the extension API to enable
2855
+ compile-time format string processing. For example
2856
+
2857
+ .. code:: c++
2858
+
2859
+ struct Answer {};
2860
+
2861
+ namespace fmt {
2862
+ template <>
2863
+ struct formatter<Answer> {
2864
+ constexpr auto parse(parse_context& ctx) {
2865
+ auto it = ctx.begin();
2866
+ spec = *it;
2867
+ if (spec != 'd' && spec != 's')
2868
+ throw format_error("invalid specifier");
2869
+ return ++it;
2870
+ }
2871
+
2872
+ template <typename FormatContext>
2873
+ auto format(Answer, FormatContext& ctx) {
2874
+ return spec == 's' ?
2875
+ format_to(ctx.begin(), "{}", "fourty-two") :
2876
+ format_to(ctx.begin(), "{}", 42);
2877
+ }
2878
+
2879
+ char spec = 0;
2880
+ };
2881
+ }
2882
+
2883
+ std::string s = format(fmt("{:x}"), Answer());
2884
+
2885
+ gives a compile-time error due to invalid format specifier (`godbolt
2886
+ <https://godbolt.org/g/2jQ1Dv>`__)::
2887
+
2888
+ ...
2889
+ <source>:12:45: error: expression '<throw-expression>' is not a constant expression
2890
+ throw format_error("invalid specifier");
2891
+
2892
+ * Added `iterator support
2893
+ <https://fmt.dev/latest/api.html#output-iterator-support>`_:
2894
+
2895
+ .. code:: c++
2896
+
2897
+ #include <vector>
2898
+ #include <fmt/format.h>
2899
+
2900
+ std::vector<char> out;
2901
+ fmt::format_to(std::back_inserter(out), "{}", 42);
2902
+
2903
+ * Added the `format_to_n
2904
+ <https://fmt.dev/latest/api.html#_CPPv2N3fmt11format_to_nE8OutputItNSt6size_tE11string_viewDpRK4Args>`_
2905
+ function that restricts the output to the specified number of characters
2906
+ (`#298 <https://github.com/fmtlib/fmt/issues/298>`_):
2907
+
2908
+ .. code:: c++
2909
+
2910
+ char out[4];
2911
+ fmt::format_to_n(out, sizeof(out), "{}", 12345);
2912
+ // out == "1234" (without terminating '\0')
2913
+
2914
+ * Added the `formatted_size
2915
+ <https://fmt.dev/latest/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args>`_
2916
+ function for computing the output size:
2917
+
2918
+ .. code:: c++
2919
+
2920
+ #include <fmt/format.h>
2921
+
2922
+ auto size = fmt::formatted_size("{}", 12345); // size == 5
2923
+
2924
+ * Improved compile times by reducing dependencies on standard headers and
2925
+ providing a lightweight `core API <https://fmt.dev/latest/api.html#core-api>`_:
2926
+
2927
+ .. code:: c++
2928
+
2929
+ #include <fmt/core.h>
2930
+
2931
+ fmt::print("The answer is {}.", 42);
2932
+
2933
+ See `Compile time and code bloat
2934
+ <https://github.com/fmtlib/fmt#compile-time-and-code-bloat>`_.
2935
+
2936
+ * Added the `make_format_args
2937
+ <https://fmt.dev/latest/api.html#_CPPv2N3fmt16make_format_argsEDpRK4Args>`_
2938
+ function for capturing formatting arguments:
2939
+
2940
+ .. code:: c++
2941
+
2942
+ // Prints formatted error message.
2943
+ void vreport_error(const char *format, fmt::format_args args) {
2944
+ fmt::print("Error: ");
2945
+ fmt::vprint(format, args);
2946
+ }
2947
+ template <typename... Args>
2948
+ void report_error(const char *format, const Args & ... args) {
2949
+ vreport_error(format, fmt::make_format_args(args...));
2950
+ }
2951
+
2952
+ * Added the ``make_printf_args`` function for capturing ``printf`` arguments
2953
+ (`#687 <https://github.com/fmtlib/fmt/issues/687>`_,
2954
+ `#694 <https://github.com/fmtlib/fmt/pull/694>`_).
2955
+ Thanks `@Kronuz (Germán Méndez Bravo) <https://github.com/Kronuz>`_.
2956
+
2957
+ * Added prefix ``v`` to non-variadic functions taking ``format_args`` to
2958
+ distinguish them from variadic ones:
2959
+
2960
+ .. code:: c++
2961
+
2962
+ std::string vformat(string_view format_str, format_args args);
2963
+
2964
+ template <typename... Args>
2965
+ std::string format(string_view format_str, const Args & ... args);
2966
+
2967
+ * Added experimental support for formatting ranges, containers and tuple-like
2968
+ types in ``fmt/ranges.h`` (`#735 <https://github.com/fmtlib/fmt/pull/735>`_):
2969
+
2970
+ .. code:: c++
2971
+
2972
+ #include <fmt/ranges.h>
2973
+
2974
+ std::vector<int> v = {1, 2, 3};
2975
+ fmt::print("{}", v); // prints {1, 2, 3}
2976
+
2977
+ Thanks `@Remotion (Remo) <https://github.com/Remotion>`_.
2978
+
2979
+ * Implemented ``wchar_t`` date and time formatting
2980
+ (`#712 <https://github.com/fmtlib/fmt/pull/712>`_):
2981
+
2982
+ .. code:: c++
2983
+
2984
+ #include <fmt/time.h>
2985
+
2986
+ std::time_t t = std::time(nullptr);
2987
+ auto s = fmt::format(L"The date is {:%Y-%m-%d}.", *std::localtime(&t));
2988
+
2989
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2990
+
2991
+ * Provided more wide string overloads
2992
+ (`#724 <https://github.com/fmtlib/fmt/pull/724>`_).
2993
+ Thanks `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_.
2994
+
2995
+ * Switched from a custom null-terminated string view class to ``string_view``
2996
+ in the format API and provided ``fmt::string_view`` which implements a subset
2997
+ of ``std::string_view`` API for pre-C++17 systems.
2998
+
2999
+ * Added support for ``std::experimental::string_view``
3000
+ (`#607 <https://github.com/fmtlib/fmt/pull/607>`_):
3001
+
3002
+ .. code:: c++
3003
+
3004
+ #include <fmt/core.h>
3005
+ #include <experimental/string_view>
3006
+
3007
+ fmt::print("{}", std::experimental::string_view("foo"));
3008
+
3009
+ Thanks `@virgiliofornazin (Virgilio Alexandre Fornazin)
3010
+ <https://github.com/virgiliofornazin>`__.
3011
+
3012
+ * Allowed mixing named and automatic arguments:
3013
+
3014
+ .. code:: c++
3015
+
3016
+ fmt::format("{} {two}", 1, fmt::arg("two", 2));
3017
+
3018
+ * Removed the write API in favor of the `format API
3019
+ <https://fmt.dev/latest/api.html#format-api>`_ with compile-time handling of
3020
+ format strings.
3021
+
3022
+ * Disallowed formatting of multibyte strings into a wide character target
3023
+ (`#606 <https://github.com/fmtlib/fmt/pull/606>`_).
3024
+
3025
+ * Improved documentation
3026
+ (`#515 <https://github.com/fmtlib/fmt/pull/515>`_,
3027
+ `#614 <https://github.com/fmtlib/fmt/issues/614>`_,
3028
+ `#617 <https://github.com/fmtlib/fmt/pull/617>`_,
3029
+ `#661 <https://github.com/fmtlib/fmt/pull/661>`_,
3030
+ `#680 <https://github.com/fmtlib/fmt/pull/680>`_).
3031
+ Thanks `@ibell (Ian Bell) <https://github.com/ibell>`_,
3032
+ `@mihaitodor (Mihai Todor) <https://github.com/mihaitodor>`_, and
3033
+ `@johnthagen <https://github.com/johnthagen>`_.
3034
+
3035
+ * Implemented more efficient handling of large number of format arguments.
3036
+
3037
+ * Introduced an inline namespace for symbol versioning.
3038
+
3039
+ * Added debug postfix ``d`` to the ``fmt`` library name
3040
+ (`#636 <https://github.com/fmtlib/fmt/issues/636>`_).
3041
+
3042
+ * Removed unnecessary ``fmt/`` prefix in includes
3043
+ (`#397 <https://github.com/fmtlib/fmt/pull/397>`_).
3044
+ Thanks `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_.
3045
+
3046
+ * Moved ``fmt/*.h`` to ``include/fmt/*.h`` to prevent irrelevant files and
3047
+ directories appearing on the include search paths when fmt is used as a
3048
+ subproject and moved source files to the ``src`` directory.
3049
+
3050
+ * Added qmake project file ``support/fmt.pro``
3051
+ (`#641 <https://github.com/fmtlib/fmt/pull/641>`_).
3052
+ Thanks `@cowo78 (Giuseppe Corbelli) <https://github.com/cowo78>`_.
3053
+
3054
+ * Added Gradle build file ``support/build.gradle``
3055
+ (`#649 <https://github.com/fmtlib/fmt/pull/649>`_).
3056
+ Thanks `@luncliff (Park DongHa) <https://github.com/luncliff>`_.
3057
+
3058
+ * Removed ``FMT_CPPFORMAT`` CMake option.
3059
+
3060
+ * Fixed a name conflict with the macro ``CHAR_WIDTH`` in glibc
3061
+ (`#616 <https://github.com/fmtlib/fmt/pull/616>`_).
3062
+ Thanks `@aroig (Abdó Roig-Maranges) <https://github.com/aroig>`_.
3063
+
3064
+ * Fixed handling of nested braces in ``fmt::join``
3065
+ (`#638 <https://github.com/fmtlib/fmt/issues/638>`_).
3066
+
3067
+ * Added ``SOURCELINK_SUFFIX`` for compatibility with Sphinx 1.5
3068
+ (`#497 <https://github.com/fmtlib/fmt/pull/497>`_).
3069
+ Thanks `@ginggs (Graham Inggs) <https://github.com/ginggs>`_.
3070
+
3071
+ * Added a missing ``inline`` in the header-only mode
3072
+ (`#626 <https://github.com/fmtlib/fmt/pull/626>`_).
3073
+ Thanks `@aroig (Abdó Roig-Maranges) <https://github.com/aroig>`_.
3074
+
3075
+ * Fixed various compiler warnings
3076
+ (`#640 <https://github.com/fmtlib/fmt/pull/640>`_,
3077
+ `#656 <https://github.com/fmtlib/fmt/pull/656>`_,
3078
+ `#679 <https://github.com/fmtlib/fmt/pull/679>`_,
3079
+ `#681 <https://github.com/fmtlib/fmt/pull/681>`_,
3080
+ `#705 <https://github.com/fmtlib/fmt/pull/705>`__,
3081
+ `#715 <https://github.com/fmtlib/fmt/issues/715>`_,
3082
+ `#717 <https://github.com/fmtlib/fmt/pull/717>`_,
3083
+ `#720 <https://github.com/fmtlib/fmt/pull/720>`_,
3084
+ `#723 <https://github.com/fmtlib/fmt/pull/723>`_,
3085
+ `#726 <https://github.com/fmtlib/fmt/pull/726>`_,
3086
+ `#730 <https://github.com/fmtlib/fmt/pull/730>`_,
3087
+ `#739 <https://github.com/fmtlib/fmt/pull/739>`_).
3088
+ Thanks `@peterbell10 <https://github.com/peterbell10>`_,
3089
+ `@LarsGullik <https://github.com/LarsGullik>`_,
3090
+ `@foonathan (Jonathan Müller) <https://github.com/foonathan>`_,
3091
+ `@eliaskosunen (Elias Kosunen) <https://github.com/eliaskosunen>`_,
3092
+ `@christianparpart (Christian Parpart) <https://github.com/christianparpart>`_,
3093
+ `@DanielaE (Daniela Engert) <https://github.com/DanielaE>`_,
3094
+ and `@mwinterb <https://github.com/mwinterb>`_.
3095
+
3096
+ * Worked around an MSVC bug and fixed several warnings
3097
+ (`#653 <https://github.com/fmtlib/fmt/pull/653>`_).
3098
+ Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
3099
+
3100
+ * Worked around GCC bug 67371
3101
+ (`#682 <https://github.com/fmtlib/fmt/issues/682>`_).
3102
+
3103
+ * Fixed compilation with ``-fno-exceptions``
3104
+ (`#655 <https://github.com/fmtlib/fmt/pull/655>`_).
3105
+ Thanks `@chenxiaolong (Andrew Gunnerson) <https://github.com/chenxiaolong>`_.
3106
+
3107
+ * Made ``constexpr remove_prefix`` gcc version check tighter
3108
+ (`#648 <https://github.com/fmtlib/fmt/issues/648>`_).
3109
+
3110
+ * Renamed internal type enum constants to prevent collision with poorly written
3111
+ C libraries (`#644 <https://github.com/fmtlib/fmt/issues/644>`_).
3112
+
3113
+ * Added detection of ``wostream operator<<``
3114
+ (`#650 <https://github.com/fmtlib/fmt/issues/650>`_).
3115
+
3116
+ * Fixed compilation on OpenBSD
3117
+ (`#660 <https://github.com/fmtlib/fmt/pull/660>`_).
3118
+ Thanks `@hubslave <https://github.com/hubslave>`_.
3119
+
3120
+ * Fixed compilation on FreeBSD 12
3121
+ (`#732 <https://github.com/fmtlib/fmt/pull/732>`_).
3122
+ Thanks `@dankm <https://github.com/dankm>`_.
3123
+
3124
+ * Fixed compilation when there is a mismatch between ``-std`` options between
3125
+ the library and user code
3126
+ (`#664 <https://github.com/fmtlib/fmt/issues/664>`_).
3127
+
3128
+ * Fixed compilation with GCC 7 and ``-std=c++11``
3129
+ (`#734 <https://github.com/fmtlib/fmt/issues/734>`_).
3130
+
3131
+ * Improved generated binary code on GCC 7 and older
3132
+ (`#668 <https://github.com/fmtlib/fmt/issues/668>`_).
3133
+
3134
+ * Fixed handling of numeric alignment with no width
3135
+ (`#675 <https://github.com/fmtlib/fmt/issues/675>`_).
3136
+
3137
+ * Fixed handling of empty strings in UTF8/16 converters
3138
+ (`#676 <https://github.com/fmtlib/fmt/pull/676>`_).
3139
+ Thanks `@vgalka-sl (Vasili Galka) <https://github.com/vgalka-sl>`_.
3140
+
3141
+ * Fixed formatting of an empty ``string_view``
3142
+ (`#689 <https://github.com/fmtlib/fmt/issues/689>`_).
3143
+
3144
+ * Fixed detection of ``string_view`` on libc++
3145
+ (`#686 <https://github.com/fmtlib/fmt/issues/686>`_).
3146
+
3147
+ * Fixed DLL issues (`#696 <https://github.com/fmtlib/fmt/pull/696>`_).
3148
+ Thanks `@sebkoenig <https://github.com/sebkoenig>`_.
3149
+
3150
+ * Fixed compile checks for mixing narrow and wide strings
3151
+ (`#690 <https://github.com/fmtlib/fmt/issues/690>`_).
3152
+
3153
+ * Disabled unsafe implicit conversion to ``std::string``
3154
+ (`#729 <https://github.com/fmtlib/fmt/issues/729>`_).
3155
+
3156
+ * Fixed handling of reused format specs (as in ``fmt::join``) for pointers
3157
+ (`#725 <https://github.com/fmtlib/fmt/pull/725>`_).
3158
+ Thanks `@mwinterb <https://github.com/mwinterb>`_.
3159
+
3160
+ * Fixed installation of ``fmt/ranges.h``
3161
+ (`#738 <https://github.com/fmtlib/fmt/pull/738>`_).
3162
+ Thanks `@sv1990 <https://github.com/sv1990>`_.
3163
+
3164
+ 4.1.0 - 2017-12-20
3165
+ ------------------
3166
+
3167
+ * Added ``fmt::to_wstring()`` in addition to ``fmt::to_string()``
3168
+ (`#559 <https://github.com/fmtlib/fmt/pull/559>`_).
3169
+ Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
3170
+
3171
+ * Added support for C++17 ``std::string_view``
3172
+ (`#571 <https://github.com/fmtlib/fmt/pull/571>`_ and
3173
+ `#578 <https://github.com/fmtlib/fmt/pull/578>`_).
3174
+ Thanks `@thelostt (Mário Feroldi) <https://github.com/thelostt>`_ and
3175
+ `@mwinterb <https://github.com/mwinterb>`_.
3176
+
3177
+ * Enabled stream exceptions to catch errors
3178
+ (`#581 <https://github.com/fmtlib/fmt/issues/581>`_).
3179
+ Thanks `@crusader-mike <https://github.com/crusader-mike>`_.
3180
+
3181
+ * Allowed formatting of class hierarchies with ``fmt::format_arg()``
3182
+ (`#547 <https://github.com/fmtlib/fmt/pull/547>`_).
3183
+ Thanks `@rollbear (Björn Fahller) <https://github.com/rollbear>`_.
3184
+
3185
+ * Removed limitations on character types
3186
+ (`#563 <https://github.com/fmtlib/fmt/pull/563>`_).
3187
+ Thanks `@Yelnats321 (Elnar Dakeshov) <https://github.com/Yelnats321>`_.
3188
+
3189
+ * Conditionally enabled use of ``std::allocator_traits``
3190
+ (`#583 <https://github.com/fmtlib/fmt/pull/583>`_).
3191
+ Thanks `@mwinterb <https://github.com/mwinterb>`_.
3192
+
3193
+ * Added support for ``const`` variadic member function emulation with
3194
+ ``FMT_VARIADIC_CONST`` (`#591 <https://github.com/fmtlib/fmt/pull/591>`_).
3195
+ Thanks `@ludekvodicka (Ludek Vodicka) <https://github.com/ludekvodicka>`_.
3196
+
3197
+ * Various bugfixes: bad overflow check, unsupported implicit type conversion
3198
+ when determining formatting function, test segfaults
3199
+ (`#551 <https://github.com/fmtlib/fmt/issues/551>`_), ill-formed macros
3200
+ (`#542 <https://github.com/fmtlib/fmt/pull/542>`_) and ambiguous overloads
3201
+ (`#580 <https://github.com/fmtlib/fmt/issues/580>`_).
3202
+ Thanks `@xylosper (Byoung-young Lee) <https://github.com/xylosper>`_.
3203
+
3204
+ * Prevented warnings on MSVC (`#605 <https://github.com/fmtlib/fmt/pull/605>`_,
3205
+ `#602 <https://github.com/fmtlib/fmt/pull/602>`_, and
3206
+ `#545 <https://github.com/fmtlib/fmt/pull/545>`_),
3207
+ clang (`#582 <https://github.com/fmtlib/fmt/pull/582>`_),
3208
+ GCC (`#573 <https://github.com/fmtlib/fmt/issues/573>`_),
3209
+ various conversion warnings (`#609 <https://github.com/fmtlib/fmt/pull/609>`_,
3210
+ `#567 <https://github.com/fmtlib/fmt/pull/567>`_,
3211
+ `#553 <https://github.com/fmtlib/fmt/pull/553>`_ and
3212
+ `#553 <https://github.com/fmtlib/fmt/pull/553>`_), and added ``override`` and
3213
+ ``[[noreturn]]`` (`#549 <https://github.com/fmtlib/fmt/pull/549>`_ and
3214
+ `#555 <https://github.com/fmtlib/fmt/issues/555>`_).
3215
+ Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_,
3216
+ `@virgiliofornazin (Virgilio Alexandre Fornazin)
3217
+ <https://gihtub.com/virgiliofornazin>`_,
3218
+ `@alexanderbock (Alexander Bock) <https://github.com/alexanderbock>`_,
3219
+ `@yumetodo <https://github.com/yumetodo>`_,
3220
+ `@VaderY (Császár Mátyás) <https://github.com/VaderY>`_,
3221
+ `@jpcima (JP Cimalando) <https://github.com/jpcima>`_,
3222
+ `@thelostt (Mário Feroldi) <https://github.com/thelostt>`_, and
3223
+ `@Manu343726 (Manu Sánchez) <https://github.com/Manu343726>`_.
3224
+
3225
+ * Improved CMake: Used ``GNUInstallDirs`` to set installation location
3226
+ (`#610 <https://github.com/fmtlib/fmt/pull/610>`_) and fixed warnings
3227
+ (`#536 <https://github.com/fmtlib/fmt/pull/536>`_ and
3228
+ `#556 <https://github.com/fmtlib/fmt/pull/556>`_).
3229
+ Thanks `@mikecrowe (Mike Crowe) <https://github.com/mikecrowe>`_,
3230
+ `@evgen231 <https://github.com/evgen231>`_ and
3231
+ `@henryiii (Henry Schreiner) <https://github.com/henryiii>`_.
3232
+
3233
+ 4.0.0 - 2017-06-27
3234
+ ------------------
3235
+
3236
+ * Removed old compatibility headers ``cppformat/*.h`` and CMake options
3237
+ (`#527 <https://github.com/fmtlib/fmt/pull/527>`_).
3238
+ Thanks `@maddinat0r (Alex Martin) <https://github.com/maddinat0r>`_.
3239
+
3240
+ * Added ``string.h`` containing ``fmt::to_string()`` as alternative to
3241
+ ``std::to_string()`` as well as other string writer functionality
3242
+ (`#326 <https://github.com/fmtlib/fmt/issues/326>`_ and
3243
+ `#441 <https://github.com/fmtlib/fmt/pull/441>`_):
3244
+
3245
+ .. code:: c++
3246
+
3247
+ #include "fmt/string.h"
3248
+
3249
+ std::string answer = fmt::to_string(42);
3250
+
3251
+ Thanks to `@glebov-andrey (Andrey Glebov)
3252
+ <https://github.com/glebov-andrey>`_.
3253
+
3254
+ * Moved ``fmt::printf()`` to new ``printf.h`` header and allowed ``%s`` as
3255
+ generic specifier (`#453 <https://github.com/fmtlib/fmt/pull/453>`_),
3256
+ made ``%.f`` more conformant to regular ``printf()``
3257
+ (`#490 <https://github.com/fmtlib/fmt/pull/490>`_), added custom writer
3258
+ support (`#476 <https://github.com/fmtlib/fmt/issues/476>`_) and implemented
3259
+ missing custom argument formatting
3260
+ (`#339 <https://github.com/fmtlib/fmt/pull/339>`_ and
3261
+ `#340 <https://github.com/fmtlib/fmt/pull/340>`_):
3262
+
3263
+ .. code:: c++
3264
+
3265
+ #include "fmt/printf.h"
3266
+
3267
+ // %s format specifier can be used with any argument type.
3268
+ fmt::printf("%s", 42);
3269
+
3270
+ Thanks `@mojoBrendan <https://github.com/mojoBrendan>`_,
3271
+ `@manylegged (Arthur Danskin) <https://github.com/manylegged>`_ and
3272
+ `@spacemoose (Glen Stark) <https://github.com/spacemoose>`_.
3273
+ See also `#360 <https://github.com/fmtlib/fmt/issues/360>`_,
3274
+ `#335 <https://github.com/fmtlib/fmt/issues/335>`_ and
3275
+ `#331 <https://github.com/fmtlib/fmt/issues/331>`_.
3276
+
3277
+ * Added ``container.h`` containing a ``BasicContainerWriter``
3278
+ to write to containers like ``std::vector``
3279
+ (`#450 <https://github.com/fmtlib/fmt/pull/450>`_).
3280
+ Thanks `@polyvertex (Jean-Charles Lefebvre) <https://github.com/polyvertex>`_.
3281
+
3282
+ * Added ``fmt::join()`` function that takes a range and formats
3283
+ its elements separated by a given string
3284
+ (`#466 <https://github.com/fmtlib/fmt/pull/466>`_):
3285
+
3286
+ .. code:: c++
3287
+
3288
+ #include "fmt/format.h"
3289
+
3290
+ std::vector<double> v = {1.2, 3.4, 5.6};
3291
+ // Prints "(+01.20, +03.40, +05.60)".
3292
+ fmt::print("({:+06.2f})", fmt::join(v.begin(), v.end(), ", "));
3293
+
3294
+ Thanks `@olivier80 <https://github.com/olivier80>`_.
3295
+
3296
+ * Added support for custom formatting specifications to simplify customization
3297
+ of built-in formatting (`#444 <https://github.com/fmtlib/fmt/pull/444>`_).
3298
+ Thanks `@polyvertex (Jean-Charles Lefebvre) <https://github.com/polyvertex>`_.
3299
+ See also `#439 <https://github.com/fmtlib/fmt/issues/439>`_.
3300
+
3301
+ * Added ``fmt::format_system_error()`` for error code formatting
3302
+ (`#323 <https://github.com/fmtlib/fmt/issues/323>`_ and
3303
+ `#526 <https://github.com/fmtlib/fmt/pull/526>`_).
3304
+ Thanks `@maddinat0r (Alex Martin) <https://github.com/maddinat0r>`_.
3305
+
3306
+ * Added thread-safe ``fmt::localtime()`` and ``fmt::gmtime()``
3307
+ as replacement for the standard version to ``time.h``
3308
+ (`#396 <https://github.com/fmtlib/fmt/pull/396>`_).
3309
+ Thanks `@codicodi <https://github.com/codicodi>`_.
3310
+
3311
+ * Internal improvements to ``NamedArg`` and ``ArgLists``
3312
+ (`#389 <https://github.com/fmtlib/fmt/pull/389>`_ and
3313
+ `#390 <https://github.com/fmtlib/fmt/pull/390>`_).
3314
+ Thanks `@chronoxor <https://github.com/chronoxor>`_.
3315
+
3316
+ * Fixed crash due to bug in ``FormatBuf``
3317
+ (`#493 <https://github.com/fmtlib/fmt/pull/493>`_).
3318
+ Thanks `@effzeh <https://github.com/effzeh>`_. See also
3319
+ `#480 <https://github.com/fmtlib/fmt/issues/480>`_ and
3320
+ `#491 <https://github.com/fmtlib/fmt/issues/491>`_.
3321
+
3322
+ * Fixed handling of wide strings in ``fmt::StringWriter``.
3323
+
3324
+ * Improved compiler error messages
3325
+ (`#357 <https://github.com/fmtlib/fmt/issues/357>`_).
3326
+
3327
+ * Fixed various warnings and issues with various compilers
3328
+ (`#494 <https://github.com/fmtlib/fmt/pull/494>`_,
3329
+ `#499 <https://github.com/fmtlib/fmt/pull/499>`_,
3330
+ `#483 <https://github.com/fmtlib/fmt/pull/483>`_,
3331
+ `#485 <https://github.com/fmtlib/fmt/pull/485>`_,
3332
+ `#482 <https://github.com/fmtlib/fmt/pull/482>`_,
3333
+ `#475 <https://github.com/fmtlib/fmt/pull/475>`_,
3334
+ `#473 <https://github.com/fmtlib/fmt/pull/473>`_ and
3335
+ `#414 <https://github.com/fmtlib/fmt/pull/414>`_).
3336
+ Thanks `@chronoxor <https://github.com/chronoxor>`_,
3337
+ `@zhaohuaxishi <https://github.com/zhaohuaxishi>`_,
3338
+ `@pkestene (Pierre Kestener) <https://github.com/pkestene>`_,
3339
+ `@dschmidt (Dominik Schmidt) <https://github.com/dschmidt>`_ and
3340
+ `@0x414c (Alexey Gorishny) <https://github.com/0x414c>`_ .
3341
+
3342
+ * Improved CMake: targets are now namespaced
3343
+ (`#511 <https://github.com/fmtlib/fmt/pull/511>`_ and
3344
+ `#513 <https://github.com/fmtlib/fmt/pull/513>`_), supported header-only
3345
+ ``printf.h`` (`#354 <https://github.com/fmtlib/fmt/pull/354>`_), fixed issue
3346
+ with minimal supported library subset
3347
+ (`#418 <https://github.com/fmtlib/fmt/issues/418>`_,
3348
+ `#419 <https://github.com/fmtlib/fmt/pull/419>`_ and
3349
+ `#420 <https://github.com/fmtlib/fmt/pull/420>`_).
3350
+ Thanks `@bjoernthiel (Bjoern Thiel) <https://github.com/bjoernthiel>`_,
3351
+ `@niosHD (Mario Werner) <https://github.com/niosHD>`_,
3352
+ `@LogicalKnight (Sean LK) <https://github.com/LogicalKnight>`_ and
3353
+ `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
3354
+
3355
+ * Improved documentation. Thanks to
3356
+ `@pwm1234 (Phil) <https://github.com/pwm1234>`_ for
3357
+ `#393 <https://github.com/fmtlib/fmt/pull/393>`_.
3358
+
3359
+ 3.0.2 - 2017-06-14
3360
+ ------------------
3361
+
3362
+ * Added ``FMT_VERSION`` macro
3363
+ (`#411 <https://github.com/fmtlib/fmt/issues/411>`_).
3364
+
3365
+ * Used ``FMT_NULL`` instead of literal ``0``
3366
+ (`#409 <https://github.com/fmtlib/fmt/pull/409>`_).
3367
+ Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
3368
+
3369
+ * Added extern templates for ``format_float``
3370
+ (`#413 <https://github.com/fmtlib/fmt/issues/413>`_).
3371
+
3372
+ * Fixed implicit conversion issue
3373
+ (`#507 <https://github.com/fmtlib/fmt/issues/507>`_).
3374
+
3375
+ * Fixed signbit detection (`#423 <https://github.com/fmtlib/fmt/issues/423>`_).
3376
+
3377
+ * Fixed naming collision (`#425 <https://github.com/fmtlib/fmt/issues/425>`_).
3378
+
3379
+ * Fixed missing intrinsic for C++/CLI
3380
+ (`#457 <https://github.com/fmtlib/fmt/pull/457>`_).
3381
+ Thanks `@calumr (Calum Robinson) <https://github.com/calumr>`_
3382
+
3383
+ * Fixed Android detection (`#458 <https://github.com/fmtlib/fmt/pull/458>`_).
3384
+ Thanks `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_.
3385
+
3386
+ * Use lean ``windows.h`` if not in header-only mode
3387
+ (`#503 <https://github.com/fmtlib/fmt/pull/503>`_).
3388
+ Thanks `@Quentin01 (Quentin Buathier) <https://github.com/Quentin01>`_.
3389
+
3390
+ * Fixed issue with CMake exporting C++11 flag
3391
+ (`#445 <https://github.com/fmtlib/fmt/pull/455>`_).
3392
+ Thanks `@EricWF (Eric) <https://github.com/EricWF>`_.
3393
+
3394
+ * Fixed issue with nvcc and MSVC compiler bug and MinGW
3395
+ (`#505 <https://github.com/fmtlib/fmt/issues/505>`_).
3396
+
3397
+ * Fixed DLL issues (`#469 <https://github.com/fmtlib/fmt/pull/469>`_ and
3398
+ `#502 <https://github.com/fmtlib/fmt/pull/502>`_).
3399
+ Thanks `@richardeakin (Richard Eakin) <https://github.com/richardeakin>`_ and
3400
+ `@AndreasSchoenle (Andreas Schönle) <https://github.com/AndreasSchoenle>`_.
3401
+
3402
+ * Fixed test compilation under FreeBSD
3403
+ (`#433 <https://github.com/fmtlib/fmt/issues/433>`_).
3404
+
3405
+ * Fixed various warnings (`#403 <https://github.com/fmtlib/fmt/pull/403>`_,
3406
+ `#410 <https://github.com/fmtlib/fmt/pull/410>`_ and
3407
+ `#510 <https://github.com/fmtlib/fmt/pull/510>`_).
3408
+ Thanks `@Lecetem <https://github.com/Lectem>`_,
3409
+ `@chenhayat (Chen Hayat) <https://github.com/chenhayat>`_ and
3410
+ `@trozen <https://github.com/trozen>`_.
3411
+
3412
+ * Worked around a broken ``__builtin_clz`` in clang with MS codegen
3413
+ (`#519 <https://github.com/fmtlib/fmt/issues/519>`_).
3414
+
3415
+ * Removed redundant include
3416
+ (`#479 <https://github.com/fmtlib/fmt/issues/479>`_).
3417
+
3418
+ * Fixed documentation issues.
3419
+
3420
+ 3.0.1 - 2016-11-01
3421
+ ------------------
3422
+ * Fixed handling of thousands separator
3423
+ (`#353 <https://github.com/fmtlib/fmt/issues/353>`_).
3424
+
3425
+ * Fixed handling of ``unsigned char`` strings
3426
+ (`#373 <https://github.com/fmtlib/fmt/issues/373>`_).
3427
+
3428
+ * Corrected buffer growth when formatting time
3429
+ (`#367 <https://github.com/fmtlib/fmt/issues/367>`_).
3430
+
3431
+ * Removed warnings under MSVC and clang
3432
+ (`#318 <https://github.com/fmtlib/fmt/issues/318>`_,
3433
+ `#250 <https://github.com/fmtlib/fmt/issues/250>`_, also merged
3434
+ `#385 <https://github.com/fmtlib/fmt/pull/385>`_ and
3435
+ `#361 <https://github.com/fmtlib/fmt/pull/361>`_).
3436
+ Thanks `@jcelerier (Jean-Michaël Celerier) <https://github.com/jcelerier>`_
3437
+ and `@nmoehrle (Nils Moehrle) <https://github.com/nmoehrle>`_.
3438
+
3439
+ * Fixed compilation issues under Android
3440
+ (`#327 <https://github.com/fmtlib/fmt/pull/327>`_,
3441
+ `#345 <https://github.com/fmtlib/fmt/issues/345>`_ and
3442
+ `#381 <https://github.com/fmtlib/fmt/pull/381>`_),
3443
+ FreeBSD (`#358 <https://github.com/fmtlib/fmt/pull/358>`_),
3444
+ Cygwin (`#388 <https://github.com/fmtlib/fmt/issues/388>`_),
3445
+ MinGW (`#355 <https://github.com/fmtlib/fmt/issues/355>`_) as well as other
3446
+ issues (`#350 <https://github.com/fmtlib/fmt/issues/350>`_,
3447
+ `#366 <https://github.com/fmtlib/fmt/issues/355>`_,
3448
+ `#348 <https://github.com/fmtlib/fmt/pull/348>`_,
3449
+ `#402 <https://github.com/fmtlib/fmt/pull/402>`_,
3450
+ `#405 <https://github.com/fmtlib/fmt/pull/405>`_).
3451
+ Thanks to `@dpantele (Dmitry) <https://github.com/dpantele>`_,
3452
+ `@hghwng (Hugh Wang) <https://github.com/hghwng>`_,
3453
+ `@arvedarved (Tilman Keskinöz) <https://github.com/arvedarved>`_,
3454
+ `@LogicalKnight (Sean) <https://github.com/LogicalKnight>`_ and
3455
+ `@JanHellwig (Jan Hellwig) <https://github.com/janhellwig>`_.
3456
+
3457
+ * Fixed some documentation issues and extended specification
3458
+ (`#320 <https://github.com/fmtlib/fmt/issues/320>`_,
3459
+ `#333 <https://github.com/fmtlib/fmt/pull/333>`_,
3460
+ `#347 <https://github.com/fmtlib/fmt/issues/347>`_,
3461
+ `#362 <https://github.com/fmtlib/fmt/pull/362>`_).
3462
+ Thanks to `@smellman (Taro Matsuzawa aka. btm)
3463
+ <https://github.com/smellman>`_.
3464
+
3465
+ 3.0.0 - 2016-05-07
3466
+ ------------------
3467
+
3468
+ * The project has been renamed from C++ Format (cppformat) to fmt for
3469
+ consistency with the used namespace and macro prefix
3470
+ (`#307 <https://github.com/fmtlib/fmt/issues/307>`_).
3471
+ Library headers are now located in the ``fmt`` directory:
3472
+
3473
+ .. code:: c++
3474
+
3475
+ #include "fmt/format.h"
3476
+
3477
+ Including ``format.h`` from the ``cppformat`` directory is deprecated
3478
+ but works via a proxy header which will be removed in the next major version.
3479
+
3480
+ The documentation is now available at https://fmt.dev.
3481
+
3482
+ * Added support for `strftime <http://en.cppreference.com/w/cpp/chrono/c/strftime>`_-like
3483
+ `date and time formatting <https://fmt.dev/3.0.0/api.html#date-and-time-formatting>`_
3484
+ (`#283 <https://github.com/fmtlib/fmt/issues/283>`_):
3485
+
3486
+ .. code:: c++
3487
+
3488
+ #include "fmt/time.h"
3489
+
3490
+ std::time_t t = std::time(nullptr);
3491
+ // Prints "The date is 2016-04-29." (with the current date)
3492
+ fmt::print("The date is {:%Y-%m-%d}.", *std::localtime(&t));
3493
+
3494
+ * ``std::ostream`` support including formatting of user-defined types that provide
3495
+ overloaded ``operator<<`` has been moved to ``fmt/ostream.h``:
3496
+
3497
+ .. code:: c++
3498
+
3499
+ #include "fmt/ostream.h"
3500
+
3501
+ class Date {
3502
+ int year_, month_, day_;
3503
+ public:
3504
+ Date(int year, int month, int day) : year_(year), month_(month), day_(day) {}
3505
+
3506
+ friend std::ostream &operator<<(std::ostream &os, const Date &d) {
3507
+ return os << d.year_ << '-' << d.month_ << '-' << d.day_;
3508
+ }
3509
+ };
3510
+
3511
+ std::string s = fmt::format("The date is {}", Date(2012, 12, 9));
3512
+ // s == "The date is 2012-12-9"
3513
+
3514
+ * Added support for `custom argument formatters
3515
+ <https://fmt.dev/3.0.0/api.html#argument-formatters>`_
3516
+ (`#235 <https://github.com/fmtlib/fmt/issues/235>`_).
3517
+
3518
+ * Added support for locale-specific integer formatting with the ``n`` specifier
3519
+ (`#305 <https://github.com/fmtlib/fmt/issues/305>`_):
3520
+
3521
+ .. code:: c++
3522
+
3523
+ std::setlocale(LC_ALL, "en_US.utf8");
3524
+ fmt::print("cppformat: {:n}\n", 1234567); // prints 1,234,567
3525
+
3526
+ * Sign is now preserved when formatting an integer with an incorrect ``printf``
3527
+ format specifier (`#265 <https://github.com/fmtlib/fmt/issues/265>`_):
3528
+
3529
+ .. code:: c++
3530
+
3531
+ fmt::printf("%lld", -42); // prints -42
3532
+
3533
+ Note that it would be an undefined behavior in ``std::printf``.
3534
+
3535
+ * Length modifiers such as ``ll`` are now optional in printf formatting
3536
+ functions and the correct type is determined automatically
3537
+ (`#255 <https://github.com/fmtlib/fmt/issues/255>`_):
3538
+
3539
+ .. code:: c++
3540
+
3541
+ fmt::printf("%d", std::numeric_limits<long long>::max());
3542
+
3543
+ Note that it would be an undefined behavior in ``std::printf``.
3544
+
3545
+ * Added initial support for custom formatters
3546
+ (`#231 <https://github.com/fmtlib/fmt/issues/231>`_).
3547
+
3548
+ * Fixed detection of user-defined literal support on Intel C++ compiler
3549
+ (`#311 <https://github.com/fmtlib/fmt/issues/311>`_,
3550
+ `#312 <https://github.com/fmtlib/fmt/pull/312>`_).
3551
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_ and
3552
+ `@speth (Ray Speth) <https://github.com/speth>`_.
3553
+
3554
+ * Reduced compile time
3555
+ (`#243 <https://github.com/fmtlib/fmt/pull/243>`_,
3556
+ `#249 <https://github.com/fmtlib/fmt/pull/249>`_,
3557
+ `#317 <https://github.com/fmtlib/fmt/issues/317>`_):
3558
+
3559
+ .. image:: https://cloud.githubusercontent.com/assets/4831417/11614060/
3560
+ b9e826d2-9c36-11e5-8666-d4131bf503ef.png
3561
+
3562
+ .. image:: https://cloud.githubusercontent.com/assets/4831417/11614080/
3563
+ 6ac903cc-9c37-11e5-8165-26df6efae364.png
3564
+
3565
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
3566
+
3567
+ * Compile test fixes (`#313 <https://github.com/fmtlib/fmt/pull/313>`_).
3568
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
3569
+
3570
+ * Documentation fixes (`#239 <https://github.com/fmtlib/fmt/pull/239>`_,
3571
+ `#248 <https://github.com/fmtlib/fmt/issues/248>`_,
3572
+ `#252 <https://github.com/fmtlib/fmt/issues/252>`_,
3573
+ `#258 <https://github.com/fmtlib/fmt/pull/258>`_,
3574
+ `#260 <https://github.com/fmtlib/fmt/issues/260>`_,
3575
+ `#301 <https://github.com/fmtlib/fmt/issues/301>`_,
3576
+ `#309 <https://github.com/fmtlib/fmt/pull/309>`_).
3577
+ Thanks to `@ReadmeCritic <https://github.com/ReadmeCritic>`_
3578
+ `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_ and
3579
+ `@jwilk (Jakub Wilk) <https://github.com/jwilk>`_.
3580
+
3581
+ * Fixed compiler and sanitizer warnings
3582
+ (`#244 <https://github.com/fmtlib/fmt/issues/244>`_,
3583
+ `#256 <https://github.com/fmtlib/fmt/pull/256>`_,
3584
+ `#259 <https://github.com/fmtlib/fmt/pull/259>`_,
3585
+ `#263 <https://github.com/fmtlib/fmt/issues/263>`_,
3586
+ `#274 <https://github.com/fmtlib/fmt/issues/274>`_,
3587
+ `#277 <https://github.com/fmtlib/fmt/pull/277>`_,
3588
+ `#286 <https://github.com/fmtlib/fmt/pull/286>`_,
3589
+ `#291 <https://github.com/fmtlib/fmt/issues/291>`_,
3590
+ `#296 <https://github.com/fmtlib/fmt/issues/296>`_,
3591
+ `#308 <https://github.com/fmtlib/fmt/issues/308>`_)
3592
+ Thanks to `@mwinterb <https://github.com/mwinterb>`_,
3593
+ `@pweiskircher (Patrik Weiskircher) <https://github.com/pweiskircher>`_,
3594
+ `@Naios <https://github.com/Naios>`_.
3595
+
3596
+ * Improved compatibility with Windows Store apps
3597
+ (`#280 <https://github.com/fmtlib/fmt/issues/280>`_,
3598
+ `#285 <https://github.com/fmtlib/fmt/pull/285>`_)
3599
+ Thanks to `@mwinterb <https://github.com/mwinterb>`_.
3600
+
3601
+ * Added tests of compatibility with older C++ standards
3602
+ (`#273 <https://github.com/fmtlib/fmt/pull/273>`_).
3603
+ Thanks to `@niosHD <https://github.com/niosHD>`_.
3604
+
3605
+ * Fixed Android build (`#271 <https://github.com/fmtlib/fmt/pull/271>`_).
3606
+ Thanks to `@newnon <https://github.com/newnon>`_.
3607
+
3608
+ * Changed ``ArgMap`` to be backed by a vector instead of a map.
3609
+ (`#261 <https://github.com/fmtlib/fmt/issues/261>`_,
3610
+ `#262 <https://github.com/fmtlib/fmt/pull/262>`_).
3611
+ Thanks to `@mwinterb <https://github.com/mwinterb>`_.
3612
+
3613
+ * Added ``fprintf`` overload that writes to a ``std::ostream``
3614
+ (`#251 <https://github.com/fmtlib/fmt/pull/251>`_).
3615
+ Thanks to `nickhutchinson (Nicholas Hutchinson) <https://github.com/nickhutchinson>`_.
3616
+
3617
+ * Export symbols when building a Windows DLL
3618
+ (`#245 <https://github.com/fmtlib/fmt/pull/245>`_).
3619
+ Thanks to `macdems (Maciek Dems) <https://github.com/macdems>`_.
3620
+
3621
+ * Fixed compilation on Cygwin (`#304 <https://github.com/fmtlib/fmt/issues/304>`_).
3622
+
3623
+ * Implemented a workaround for a bug in Apple LLVM version 4.2 of clang
3624
+ (`#276 <https://github.com/fmtlib/fmt/issues/276>`_).
3625
+
3626
+ * Implemented a workaround for Google Test bug
3627
+ `#705 <https://github.com/google/googletest/issues/705>`_ on gcc 6
3628
+ (`#268 <https://github.com/fmtlib/fmt/issues/268>`_).
3629
+ Thanks to `octoploid <https://github.com/octoploid>`_.
3630
+
3631
+ * Removed Biicode support because the latter has been discontinued.
3632
+
3633
+ 2.1.1 - 2016-04-11
3634
+ ------------------
3635
+
3636
+ * The install location for generated CMake files is now configurable via
3637
+ the ``FMT_CMAKE_DIR`` CMake variable
3638
+ (`#299 <https://github.com/fmtlib/fmt/pull/299>`_).
3639
+ Thanks to `@niosHD <https://github.com/niosHD>`_.
3640
+
3641
+ * Documentation fixes (`#252 <https://github.com/fmtlib/fmt/issues/252>`_).
3642
+
3643
+ 2.1.0 - 2016-03-21
3644
+ ------------------
3645
+
3646
+ * Project layout and build system improvements
3647
+ (`#267 <https://github.com/fmtlib/fmt/pull/267>`_):
3648
+
3649
+ * The code have been moved to the ``cppformat`` directory.
3650
+ Including ``format.h`` from the top-level directory is deprecated
3651
+ but works via a proxy header which will be removed in the next
3652
+ major version.
3653
+
3654
+ * C++ Format CMake targets now have proper interface definitions.
3655
+
3656
+ * Installed version of the library now supports the header-only
3657
+ configuration.
3658
+
3659
+ * Targets ``doc``, ``install``, and ``test`` are now disabled if C++ Format
3660
+ is included as a CMake subproject. They can be enabled by setting
3661
+ ``FMT_DOC``, ``FMT_INSTALL``, and ``FMT_TEST`` in the parent project.
3662
+
3663
+ Thanks to `@niosHD <https://github.com/niosHD>`_.
3664
+
3665
+ 2.0.1 - 2016-03-13
3666
+ ------------------
3667
+
3668
+ * Improved CMake find and package support
3669
+ (`#264 <https://github.com/fmtlib/fmt/issues/264>`_).
3670
+ Thanks to `@niosHD <https://github.com/niosHD>`_.
3671
+
3672
+ * Fix compile error with Android NDK and mingw32
3673
+ (`#241 <https://github.com/fmtlib/fmt/issues/241>`_).
3674
+ Thanks to `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_.
3675
+
3676
+ * Documentation fixes
3677
+ (`#248 <https://github.com/fmtlib/fmt/issues/248>`_,
3678
+ `#260 <https://github.com/fmtlib/fmt/issues/260>`_).
3679
+
3680
+ 2.0.0 - 2015-12-01
3681
+ ------------------
3682
+
3683
+ General
3684
+ ~~~~~~~
3685
+
3686
+ * [Breaking] Named arguments
3687
+ (`#169 <https://github.com/fmtlib/fmt/pull/169>`_,
3688
+ `#173 <https://github.com/fmtlib/fmt/pull/173>`_,
3689
+ `#174 <https://github.com/fmtlib/fmt/pull/174>`_):
3690
+
3691
+ .. code:: c++
3692
+
3693
+ fmt::print("The answer is {answer}.", fmt::arg("answer", 42));
3694
+
3695
+ Thanks to `@jamboree <https://github.com/jamboree>`_.
3696
+
3697
+ * [Experimental] User-defined literals for format and named arguments
3698
+ (`#204 <https://github.com/fmtlib/fmt/pull/204>`_,
3699
+ `#206 <https://github.com/fmtlib/fmt/pull/206>`_,
3700
+ `#207 <https://github.com/fmtlib/fmt/pull/207>`_):
3701
+
3702
+ .. code:: c++
3703
+
3704
+ using namespace fmt::literals;
3705
+ fmt::print("The answer is {answer}.", "answer"_a=42);
3706
+
3707
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
3708
+
3709
+ * [Breaking] Formatting of more than 16 arguments is now supported when using
3710
+ variadic templates
3711
+ (`#141 <https://github.com/fmtlib/fmt/issues/141>`_).
3712
+ Thanks to `@Shauren <https://github.com/Shauren>`_.
3713
+
3714
+ * Runtime width specification
3715
+ (`#168 <https://github.com/fmtlib/fmt/pull/168>`_):
3716
+
3717
+ .. code:: c++
3718
+
3719
+ fmt::format("{0:{1}}", 42, 5); // gives " 42"
3720
+
3721
+ Thanks to `@jamboree <https://github.com/jamboree>`_.
3722
+
3723
+ * [Breaking] Enums are now formatted with an overloaded ``std::ostream`` insertion
3724
+ operator (``operator<<``) if available
3725
+ (`#232 <https://github.com/fmtlib/fmt/issues/232>`_).
3726
+
3727
+ * [Breaking] Changed default ``bool`` format to textual, "true" or "false"
3728
+ (`#170 <https://github.com/fmtlib/fmt/issues/170>`_):
3729
+
3730
+ .. code:: c++
3731
+
3732
+ fmt::print("{}", true); // prints "true"
3733
+
3734
+ To print ``bool`` as a number use numeric format specifier such as ``d``:
3735
+
3736
+ .. code:: c++
3737
+
3738
+ fmt::print("{:d}", true); // prints "1"
3739
+
3740
+ * ``fmt::printf`` and ``fmt::sprintf`` now support formatting of ``bool`` with the
3741
+ ``%s`` specifier giving textual output, "true" or "false"
3742
+ (`#223 <https://github.com/fmtlib/fmt/pull/223>`_):
3743
+
3744
+ .. code:: c++
3745
+
3746
+ fmt::printf("%s", true); // prints "true"
3747
+
3748
+ Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
3749
+
3750
+ * [Breaking] ``signed char`` and ``unsigned char`` are now formatted as integers by default
3751
+ (`#217 <https://github.com/fmtlib/fmt/pull/217>`_).
3752
+
3753
+ * [Breaking] Pointers to C strings can now be formatted with the ``p`` specifier
3754
+ (`#223 <https://github.com/fmtlib/fmt/pull/223>`_):
3755
+
3756
+ .. code:: c++
3757
+
3758
+ fmt::print("{:p}", "test"); // prints pointer value
3759
+
3760
+ Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
3761
+
3762
+ * [Breaking] ``fmt::printf`` and ``fmt::sprintf`` now print null pointers as ``(nil)``
3763
+ and null strings as ``(null)`` for consistency with glibc
3764
+ (`#226 <https://github.com/fmtlib/fmt/pull/226>`_).
3765
+ Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
3766
+
3767
+ * [Breaking] ``fmt::(s)printf`` now supports formatting of objects of user-defined types
3768
+ that provide an overloaded ``std::ostream`` insertion operator (``operator<<``)
3769
+ (`#201 <https://github.com/fmtlib/fmt/issues/201>`_):
3770
+
3771
+ .. code:: c++
3772
+
3773
+ fmt::printf("The date is %s", Date(2012, 12, 9));
3774
+
3775
+ * [Breaking] The ``Buffer`` template is now part of the public API and can be used
3776
+ to implement custom memory buffers
3777
+ (`#140 <https://github.com/fmtlib/fmt/issues/140>`_).
3778
+ Thanks to `@polyvertex (Jean-Charles Lefebvre) <https://github.com/polyvertex>`_.
3779
+
3780
+ * [Breaking] Improved compatibility between ``BasicStringRef`` and
3781
+ `std::experimental::basic_string_view
3782
+ <http://en.cppreference.com/w/cpp/experimental/basic_string_view>`_
3783
+ (`#100 <https://github.com/fmtlib/fmt/issues/100>`_,
3784
+ `#159 <https://github.com/fmtlib/fmt/issues/159>`_,
3785
+ `#183 <https://github.com/fmtlib/fmt/issues/183>`_):
3786
+
3787
+ - Comparison operators now compare string content, not pointers
3788
+ - ``BasicStringRef::c_str`` replaced by ``BasicStringRef::data``
3789
+ - ``BasicStringRef`` is no longer assumed to be null-terminated
3790
+
3791
+ References to null-terminated strings are now represented by a new class,
3792
+ ``BasicCStringRef``.
3793
+
3794
+ * Dependency on pthreads introduced by Google Test is now optional
3795
+ (`#185 <https://github.com/fmtlib/fmt/issues/185>`_).
3796
+
3797
+ * New CMake options ``FMT_DOC``, ``FMT_INSTALL`` and ``FMT_TEST`` to control
3798
+ generation of ``doc``, ``install`` and ``test`` targets respectively, on by default
3799
+ (`#197 <https://github.com/fmtlib/fmt/issues/197>`_,
3800
+ `#198 <https://github.com/fmtlib/fmt/issues/198>`_,
3801
+ `#200 <https://github.com/fmtlib/fmt/issues/200>`_).
3802
+ Thanks to `@maddinat0r (Alex Martin) <https://github.com/maddinat0r>`_.
3803
+
3804
+ * ``noexcept`` is now used when compiling with MSVC2015
3805
+ (`#215 <https://github.com/fmtlib/fmt/pull/215>`_).
3806
+ Thanks to `@dmkrepo (Dmitriy) <https://github.com/dmkrepo>`_.
3807
+
3808
+ * Added an option to disable use of ``windows.h`` when ``FMT_USE_WINDOWS_H``
3809
+ is defined as 0 before including ``format.h``
3810
+ (`#171 <https://github.com/fmtlib/fmt/issues/171>`_).
3811
+ Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
3812
+
3813
+ * [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless
3814
+ ``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using
3815
+ ``std::min`` and ``std::max`` and only affects the header-only configuration
3816
+ (`#152 <https://github.com/fmtlib/fmt/issues/152>`_,
3817
+ `#153 <https://github.com/fmtlib/fmt/pull/153>`_,
3818
+ `#154 <https://github.com/fmtlib/fmt/pull/154>`_).
3819
+ Thanks to `@DevO2012 <https://github.com/DevO2012>`_.
3820
+
3821
+ * Improved support for custom character types
3822
+ (`#171 <https://github.com/fmtlib/fmt/issues/171>`_).
3823
+ Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
3824
+
3825
+ * Added an option to disable use of IOStreams when ``FMT_USE_IOSTREAMS``
3826
+ is defined as 0 before including ``format.h``
3827
+ (`#205 <https://github.com/fmtlib/fmt/issues/205>`_,
3828
+ `#208 <https://github.com/fmtlib/fmt/pull/208>`_).
3829
+ Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_.
3830
+
3831
+ * Improved detection of ``isnan``, ``isinf`` and ``signbit``.
3832
+
3833
+ Optimization
3834
+ ~~~~~~~~~~~~
3835
+
3836
+ * Made formatting of user-defined types more efficient with a custom stream buffer
3837
+ (`#92 <https://github.com/fmtlib/fmt/issues/92>`_,
3838
+ `#230 <https://github.com/fmtlib/fmt/pull/230>`_).
3839
+ Thanks to `@NotImplemented <https://github.com/NotImplemented>`_.
3840
+
3841
+ * Further improved performance of ``fmt::Writer`` on integer formatting
3842
+ and fixed a minor regression. Now it is ~7% faster than ``karma::generate``
3843
+ on Karma's benchmark
3844
+ (`#186 <https://github.com/fmtlib/fmt/issues/186>`_).
3845
+
3846
+ * [Breaking] Reduced `compiled code size
3847
+ <https://github.com/fmtlib/fmt#compile-time-and-code-bloat>`_
3848
+ (`#143 <https://github.com/fmtlib/fmt/issues/143>`_,
3849
+ `#149 <https://github.com/fmtlib/fmt/pull/149>`_).
3850
+
3851
+ Distribution
3852
+ ~~~~~~~~~~~~
3853
+
3854
+ * [Breaking] Headers are now installed in
3855
+ ``${CMAKE_INSTALL_PREFIX}/include/cppformat``
3856
+ (`#178 <https://github.com/fmtlib/fmt/issues/178>`_).
3857
+ Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
3858
+
3859
+ * [Breaking] Changed the library name from ``format`` to ``cppformat``
3860
+ for consistency with the project name and to avoid potential conflicts
3861
+ (`#178 <https://github.com/fmtlib/fmt/issues/178>`_).
3862
+ Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
3863
+
3864
+ * C++ Format is now available in `Debian <https://www.debian.org/>`_ GNU/Linux
3865
+ (`stretch <https://packages.debian.org/source/stretch/cppformat>`_,
3866
+ `sid <https://packages.debian.org/source/sid/cppformat>`_) and
3867
+ derived distributions such as
3868
+ `Ubuntu <https://launchpad.net/ubuntu/+source/cppformat>`_ 15.10 and later
3869
+ (`#155 <https://github.com/fmtlib/fmt/issues/155>`_)::
3870
+
3871
+ $ sudo apt-get install libcppformat1-dev
3872
+
3873
+ Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
3874
+
3875
+ * `Packages for Fedora and RHEL <https://admin.fedoraproject.org/pkgdb/package/cppformat/>`_
3876
+ are now available. Thanks to Dave Johansen.
3877
+
3878
+ * C++ Format can now be installed via `Homebrew <http://brew.sh/>`_ on OS X
3879
+ (`#157 <https://github.com/fmtlib/fmt/issues/157>`_)::
3880
+
3881
+ $ brew install cppformat
3882
+
3883
+ Thanks to `@ortho <https://github.com/ortho>`_, Anatoliy Bulukin.
3884
+
3885
+ Documentation
3886
+ ~~~~~~~~~~~~~
3887
+
3888
+ * Migrated from ReadTheDocs to GitHub Pages for better responsiveness
3889
+ and reliability
3890
+ (`#128 <https://github.com/fmtlib/fmt/issues/128>`_).
3891
+ New documentation address is http://cppformat.github.io/.
3892
+
3893
+
3894
+ * Added `Building the documentation
3895
+ <https://fmt.dev/2.0.0/usage.html#building-the-documentation>`_
3896
+ section to the documentation.
3897
+
3898
+ * Documentation build script is now compatible with Python 3 and newer pip versions.
3899
+ (`#189 <https://github.com/fmtlib/fmt/pull/189>`_,
3900
+ `#209 <https://github.com/fmtlib/fmt/issues/209>`_).
3901
+ Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_ and
3902
+ `@xentec <https://github.com/xentec>`_.
3903
+
3904
+ * Documentation fixes and improvements
3905
+ (`#36 <https://github.com/fmtlib/fmt/issues/36>`_,
3906
+ `#75 <https://github.com/fmtlib/fmt/issues/75>`_,
3907
+ `#125 <https://github.com/fmtlib/fmt/issues/125>`_,
3908
+ `#160 <https://github.com/fmtlib/fmt/pull/160>`_,
3909
+ `#161 <https://github.com/fmtlib/fmt/pull/161>`_,
3910
+ `#162 <https://github.com/fmtlib/fmt/issues/162>`_,
3911
+ `#165 <https://github.com/fmtlib/fmt/issues/165>`_,
3912
+ `#210 <https://github.com/fmtlib/fmt/issues/210>`_).
3913
+ Thanks to `@syohex (Syohei YOSHIDA) <https://github.com/syohex>`_ and
3914
+ bug reporters.
3915
+
3916
+ * Fixed out-of-tree documentation build
3917
+ (`#177 <https://github.com/fmtlib/fmt/issues/177>`_).
3918
+ Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
3919
+
3920
+ Fixes
3921
+ ~~~~~
3922
+
3923
+ * Fixed ``initializer_list`` detection
3924
+ (`#136 <https://github.com/fmtlib/fmt/issues/136>`_).
3925
+ Thanks to `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_.
3926
+
3927
+ * [Breaking] Fixed formatting of enums with numeric format specifiers in
3928
+ ``fmt::(s)printf``
3929
+ (`#131 <https://github.com/fmtlib/fmt/issues/131>`_,
3930
+ `#139 <https://github.com/fmtlib/fmt/issues/139>`_):
3931
+
3932
+ .. code:: c++
3933
+
3934
+ enum { ANSWER = 42 };
3935
+ fmt::printf("%d", ANSWER);
3936
+
3937
+ Thanks to `@Naios <https://github.com/Naios>`_.
3938
+
3939
+ * Improved compatibility with old versions of MinGW
3940
+ (`#129 <https://github.com/fmtlib/fmt/issues/129>`_,
3941
+ `#130 <https://github.com/fmtlib/fmt/pull/130>`_,
3942
+ `#132 <https://github.com/fmtlib/fmt/issues/132>`_).
3943
+ Thanks to `@cstamford (Christopher Stamford) <https://github.com/cstamford>`_.
3944
+
3945
+ * Fixed a compile error on MSVC with disabled exceptions
3946
+ (`#144 <https://github.com/fmtlib/fmt/issues/144>`_).
3947
+
3948
+ * Added a workaround for broken implementation of variadic templates in MSVC2012
3949
+ (`#148 <https://github.com/fmtlib/fmt/issues/148>`_).
3950
+
3951
+ * Placed the anonymous namespace within ``fmt`` namespace for the header-only
3952
+ configuration
3953
+ (`#171 <https://github.com/fmtlib/fmt/issues/171>`_).
3954
+ Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
3955
+
3956
+ * Fixed issues reported by Coverity Scan
3957
+ (`#187 <https://github.com/fmtlib/fmt/issues/187>`_,
3958
+ `#192 <https://github.com/fmtlib/fmt/issues/192>`_).
3959
+
3960
+ * Implemented a workaround for a name lookup bug in MSVC2010
3961
+ (`#188 <https://github.com/fmtlib/fmt/issues/188>`_).
3962
+
3963
+ * Fixed compiler warnings
3964
+ (`#95 <https://github.com/fmtlib/fmt/issues/95>`_,
3965
+ `#96 <https://github.com/fmtlib/fmt/issues/96>`_,
3966
+ `#114 <https://github.com/fmtlib/fmt/pull/114>`_,
3967
+ `#135 <https://github.com/fmtlib/fmt/issues/135>`_,
3968
+ `#142 <https://github.com/fmtlib/fmt/issues/142>`_,
3969
+ `#145 <https://github.com/fmtlib/fmt/issues/145>`_,
3970
+ `#146 <https://github.com/fmtlib/fmt/issues/146>`_,
3971
+ `#158 <https://github.com/fmtlib/fmt/issues/158>`_,
3972
+ `#163 <https://github.com/fmtlib/fmt/issues/163>`_,
3973
+ `#175 <https://github.com/fmtlib/fmt/issues/175>`_,
3974
+ `#190 <https://github.com/fmtlib/fmt/issues/190>`_,
3975
+ `#191 <https://github.com/fmtlib/fmt/pull/191>`_,
3976
+ `#194 <https://github.com/fmtlib/fmt/issues/194>`_,
3977
+ `#196 <https://github.com/fmtlib/fmt/pull/196>`_,
3978
+ `#216 <https://github.com/fmtlib/fmt/issues/216>`_,
3979
+ `#218 <https://github.com/fmtlib/fmt/pull/218>`_,
3980
+ `#220 <https://github.com/fmtlib/fmt/pull/220>`_,
3981
+ `#229 <https://github.com/fmtlib/fmt/pull/229>`_,
3982
+ `#233 <https://github.com/fmtlib/fmt/issues/233>`_,
3983
+ `#234 <https://github.com/fmtlib/fmt/issues/234>`_,
3984
+ `#236 <https://github.com/fmtlib/fmt/pull/236>`_,
3985
+ `#281 <https://github.com/fmtlib/fmt/issues/281>`_,
3986
+ `#289 <https://github.com/fmtlib/fmt/issues/289>`_).
3987
+ Thanks to `@seanmiddleditch (Sean Middleditch) <https://github.com/seanmiddleditch>`_,
3988
+ `@dixlorenz (Dix Lorenz) <https://github.com/dixlorenz>`_,
3989
+ `@CarterLi (李通洲) <https://github.com/CarterLi>`_,
3990
+ `@Naios <https://github.com/Naios>`_,
3991
+ `@fmatthew5876 (Matthew Fioravante) <https://github.com/fmatthew5876>`_,
3992
+ `@LevskiWeng (Levski Weng) <https://github.com/LevskiWeng>`_,
3993
+ `@rpopescu <https://github.com/rpopescu>`_,
3994
+ `@gabime (Gabi Melman) <https://github.com/gabime>`_,
3995
+ `@cubicool (Jeremy Moles) <https://github.com/cubicool>`_,
3996
+ `@jkflying (Julian Kent) <https://github.com/jkflying>`_,
3997
+ `@LogicalKnight (Sean L) <https://github.com/LogicalKnight>`_,
3998
+ `@inguin (Ingo van Lil) <https://github.com/inguin>`_ and
3999
+ `@Jopie64 (Johan) <https://github.com/Jopie64>`_.
4000
+
4001
+ * Fixed portability issues (mostly causing test failures) on ARM, ppc64, ppc64le,
4002
+ s390x and SunOS 5.11 i386
4003
+ (`#138 <https://github.com/fmtlib/fmt/issues/138>`_,
4004
+ `#179 <https://github.com/fmtlib/fmt/issues/179>`_,
4005
+ `#180 <https://github.com/fmtlib/fmt/issues/180>`_,
4006
+ `#202 <https://github.com/fmtlib/fmt/issues/202>`_,
4007
+ `#225 <https://github.com/fmtlib/fmt/issues/225>`_,
4008
+ `Red Hat Bugzilla Bug 1260297 <https://bugzilla.redhat.com/show_bug.cgi?id=1260297>`_).
4009
+ Thanks to `@Naios <https://github.com/Naios>`_,
4010
+ `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_ and Dave Johansen.
4011
+
4012
+ * Fixed a name conflict with macro ``free`` defined in
4013
+ ``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set
4014
+ (`#211 <https://github.com/fmtlib/fmt/issues/211>`_).
4015
+
4016
+ * Fixed shared library build on OS X
4017
+ (`#212 <https://github.com/fmtlib/fmt/pull/212>`_).
4018
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
4019
+
4020
+ * Fixed an overload conflict on MSVC when ``/Zc:wchar_t-`` option is specified
4021
+ (`#214 <https://github.com/fmtlib/fmt/pull/214>`_).
4022
+ Thanks to `@slavanap (Vyacheslav Napadovsky) <https://github.com/slavanap>`_.
4023
+
4024
+ * Improved compatibility with MSVC 2008
4025
+ (`#236 <https://github.com/fmtlib/fmt/pull/236>`_).
4026
+ Thanks to `@Jopie64 (Johan) <https://github.com/Jopie64>`_.
4027
+
4028
+ * Improved compatibility with bcc32
4029
+ (`#227 <https://github.com/fmtlib/fmt/issues/227>`_).
4030
+
4031
+ * Fixed ``static_assert`` detection on Clang
4032
+ (`#228 <https://github.com/fmtlib/fmt/pull/228>`_).
4033
+ Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
4034
+
4035
+ 1.1.0 - 2015-03-06
4036
+ ------------------
4037
+
4038
+ * Added ``BasicArrayWriter``, a class template that provides operations for
4039
+ formatting and writing data into a fixed-size array
4040
+ (`#105 <https://github.com/fmtlib/fmt/issues/105>`_ and
4041
+ `#122 <https://github.com/fmtlib/fmt/issues/122>`_):
4042
+
4043
+ .. code:: c++
4044
+
4045
+ char buffer[100];
4046
+ fmt::ArrayWriter w(buffer);
4047
+ w.write("The answer is {}", 42);
4048
+
4049
+ * Added `0 A.D. <http://play0ad.com/>`_ and `PenUltima Online (POL)
4050
+ <http://www.polserver.com/>`_ to the list of notable projects using C++ Format.
4051
+
4052
+ * C++ Format now uses MSVC intrinsics for better formatting performance
4053
+ (`#115 <https://github.com/fmtlib/fmt/pull/115>`_,
4054
+ `#116 <https://github.com/fmtlib/fmt/pull/116>`_,
4055
+ `#118 <https://github.com/fmtlib/fmt/pull/118>`_ and
4056
+ `#121 <https://github.com/fmtlib/fmt/pull/121>`_).
4057
+ Previously these optimizations where only used on GCC and Clang.
4058
+ Thanks to `@CarterLi <https://github.com/CarterLi>`_ and
4059
+ `@objectx <https://github.com/objectx>`_.
4060
+
4061
+ * CMake install target (`#119 <https://github.com/fmtlib/fmt/pull/119>`_).
4062
+ Thanks to `@TrentHouliston <https://github.com/TrentHouliston>`_.
4063
+
4064
+ You can now install C++ Format with ``make install`` command.
4065
+
4066
+ * Improved `Biicode <http://www.biicode.com/>`_ support
4067
+ (`#98 <https://github.com/fmtlib/fmt/pull/98>`_ and
4068
+ `#104 <https://github.com/fmtlib/fmt/pull/104>`_). Thanks to
4069
+ `@MariadeAnton <https://github.com/MariadeAnton>`_ and
4070
+ `@franramirez688 <https://github.com/franramirez688>`_.
4071
+
4072
+ * Improved support for building with `Android NDK
4073
+ <https://developer.android.com/tools/sdk/ndk/index.html>`_
4074
+ (`#107 <https://github.com/fmtlib/fmt/pull/107>`_).
4075
+ Thanks to `@newnon <https://github.com/newnon>`_.
4076
+
4077
+ The `android-ndk-example <https://github.com/fmtlib/android-ndk-example>`_
4078
+ repository provides and example of using C++ Format with Android NDK:
4079
+
4080
+ .. image:: https://raw.githubusercontent.com/fmtlib/android-ndk-example/
4081
+ master/screenshot.png
4082
+
4083
+ * Improved documentation of ``SystemError`` and ``WindowsError``
4084
+ (`#54 <https://github.com/fmtlib/fmt/issues/54>`_).
4085
+
4086
+ * Various code improvements
4087
+ (`#110 <https://github.com/fmtlib/fmt/pull/110>`_,
4088
+ `#111 <https://github.com/fmtlib/fmt/pull/111>`_
4089
+ `#112 <https://github.com/fmtlib/fmt/pull/112>`_).
4090
+ Thanks to `@CarterLi <https://github.com/CarterLi>`_.
4091
+
4092
+ * Improved compile-time errors when formatting wide into narrow strings
4093
+ (`#117 <https://github.com/fmtlib/fmt/issues/117>`_).
4094
+
4095
+ * Fixed ``BasicWriter::write`` without formatting arguments when C++11 support
4096
+ is disabled (`#109 <https://github.com/fmtlib/fmt/issues/109>`_).
4097
+
4098
+ * Fixed header-only build on OS X with GCC 4.9
4099
+ (`#124 <https://github.com/fmtlib/fmt/issues/124>`_).
4100
+
4101
+ * Fixed packaging issues (`#94 <https://github.com/fmtlib/fmt/issues/94>`_).
4102
+
4103
+ * Added `changelog <https://github.com/fmtlib/fmt/blob/master/ChangeLog.rst>`_
4104
+ (`#103 <https://github.com/fmtlib/fmt/issues/103>`_).
4105
+
4106
+ 1.0.0 - 2015-02-05
4107
+ ------------------
4108
+
4109
+ * Add support for a header-only configuration when ``FMT_HEADER_ONLY`` is
4110
+ defined before including ``format.h``:
4111
+
4112
+ .. code:: c++
4113
+
4114
+ #define FMT_HEADER_ONLY
4115
+ #include "format.h"
4116
+
4117
+ * Compute string length in the constructor of ``BasicStringRef``
4118
+ instead of the ``size`` method
4119
+ (`#79 <https://github.com/fmtlib/fmt/issues/79>`_).
4120
+ This eliminates size computation for string literals on reasonable optimizing
4121
+ compilers.
4122
+
4123
+ * Fix formatting of types with overloaded ``operator <<`` for ``std::wostream``
4124
+ (`#86 <https://github.com/fmtlib/fmt/issues/86>`_):
4125
+
4126
+ .. code:: c++
4127
+
4128
+ fmt::format(L"The date is {0}", Date(2012, 12, 9));
4129
+
4130
+ * Fix linkage of tests on Arch Linux
4131
+ (`#89 <https://github.com/fmtlib/fmt/issues/89>`_).
4132
+
4133
+ * Allow precision specifier for non-float arguments
4134
+ (`#90 <https://github.com/fmtlib/fmt/issues/90>`_):
4135
+
4136
+ .. code:: c++
4137
+
4138
+ fmt::print("{:.3}\n", "Carpet"); // prints "Car"
4139
+
4140
+ * Fix build on Android NDK
4141
+ (`#93 <https://github.com/fmtlib/fmt/issues/93>`_)
4142
+
4143
+ * Improvements to documentation build procedure.
4144
+
4145
+ * Remove ``FMT_SHARED`` CMake variable in favor of standard `BUILD_SHARED_LIBS
4146
+ <http://www.cmake.org/cmake/help/v3.0/variable/BUILD_SHARED_LIBS.html>`_.
4147
+
4148
+ * Fix error handling in ``fmt::fprintf``.
4149
+
4150
+ * Fix a number of warnings.
4151
+
4152
+ 0.12.0 - 2014-10-25
4153
+ -------------------
4154
+
4155
+ * [Breaking] Improved separation between formatting and buffer management.
4156
+ ``Writer`` is now a base class that cannot be instantiated directly.
4157
+ The new ``MemoryWriter`` class implements the default buffer management
4158
+ with small allocations done on stack. So ``fmt::Writer`` should be replaced
4159
+ with ``fmt::MemoryWriter`` in variable declarations.
4160
+
4161
+ Old code:
4162
+
4163
+ .. code:: c++
4164
+
4165
+ fmt::Writer w;
4166
+
4167
+ New code:
4168
+
4169
+ .. code:: c++
4170
+
4171
+ fmt::MemoryWriter w;
4172
+
4173
+ If you pass ``fmt::Writer`` by reference, you can continue to do so:
4174
+
4175
+ .. code:: c++
4176
+
4177
+ void f(fmt::Writer &w);
4178
+
4179
+ This doesn't affect the formatting API.
4180
+
4181
+ * Support for custom memory allocators
4182
+ (`#69 <https://github.com/fmtlib/fmt/issues/69>`_)
4183
+
4184
+ * Formatting functions now accept `signed char` and `unsigned char` strings as
4185
+ arguments (`#73 <https://github.com/fmtlib/fmt/issues/73>`_):
4186
+
4187
+ .. code:: c++
4188
+
4189
+ auto s = format("GLSL version: {}", glGetString(GL_VERSION));
4190
+
4191
+ * Reduced code bloat. According to the new `benchmark results
4192
+ <https://github.com/fmtlib/fmt#compile-time-and-code-bloat>`_,
4193
+ cppformat is close to ``printf`` and by the order of magnitude better than
4194
+ Boost Format in terms of compiled code size.
4195
+
4196
+ * Improved appearance of the documentation on mobile by using the `Sphinx
4197
+ Bootstrap theme <http://ryan-roemer.github.io/sphinx-bootstrap-theme/>`_:
4198
+
4199
+ .. |old| image:: https://cloud.githubusercontent.com/assets/576385/4792130/
4200
+ cd256436-5de3-11e4-9a62-c077d0c2b003.png
4201
+
4202
+ .. |new| image:: https://cloud.githubusercontent.com/assets/576385/4792131/
4203
+ cd29896c-5de3-11e4-8f59-cac952942bf0.png
4204
+
4205
+ +-------+-------+
4206
+ | Old | New |
4207
+ +-------+-------+
4208
+ | |old| | |new| |
4209
+ +-------+-------+
4210
+
4211
+ 0.11.0 - 2014-08-21
4212
+ -------------------
4213
+
4214
+ * Safe printf implementation with a POSIX extension for positional arguments:
4215
+
4216
+ .. code:: c++
4217
+
4218
+ fmt::printf("Elapsed time: %.2f seconds", 1.23);
4219
+ fmt::printf("%1$s, %3$d %2$s", weekday, month, day);
4220
+
4221
+ * Arguments of ``char`` type can now be formatted as integers
4222
+ (Issue `#55 <https://github.com/fmtlib/fmt/issues/55>`_):
4223
+
4224
+ .. code:: c++
4225
+
4226
+ fmt::format("0x{0:02X}", 'a');
4227
+
4228
+ * Deprecated parts of the API removed.
4229
+
4230
+ * The library is now built and tested on MinGW with Appveyor in addition to
4231
+ existing test platforms Linux/GCC, OS X/Clang, Windows/MSVC.
4232
+
4233
+ 0.10.0 - 2014-07-01
4234
+ -------------------
4235
+
4236
+ **Improved API**
4237
+
4238
+ * All formatting methods are now implemented as variadic functions instead
4239
+ of using ``operator<<`` for feeding arbitrary arguments into a temporary
4240
+ formatter object. This works both with C++11 where variadic templates are
4241
+ used and with older standards where variadic functions are emulated by
4242
+ providing lightweight wrapper functions defined with the ``FMT_VARIADIC``
4243
+ macro. You can use this macro for defining your own portable variadic
4244
+ functions:
4245
+
4246
+ .. code:: c++
4247
+
4248
+ void report_error(const char *format, const fmt::ArgList &args) {
4249
+ fmt::print("Error: {}");
4250
+ fmt::print(format, args);
4251
+ }
4252
+ FMT_VARIADIC(void, report_error, const char *)
4253
+
4254
+ report_error("file not found: {}", path);
4255
+
4256
+ Apart from a more natural syntax, this also improves performance as there
4257
+ is no need to construct temporary formatter objects and control arguments'
4258
+ lifetimes. Because the wrapper functions are very lightweight, this doesn't
4259
+ cause code bloat even in pre-C++11 mode.
4260
+
4261
+ * Simplified common case of formatting an ``std::string``. Now it requires a
4262
+ single function call:
4263
+
4264
+ .. code:: c++
4265
+
4266
+ std::string s = format("The answer is {}.", 42);
4267
+
4268
+ Previously it required 2 function calls:
4269
+
4270
+ .. code:: c++
4271
+
4272
+ std::string s = str(Format("The answer is {}.") << 42);
4273
+
4274
+ Instead of unsafe ``c_str`` function, ``fmt::Writer`` should be used directly
4275
+ to bypass creation of ``std::string``:
4276
+
4277
+ .. code:: c++
4278
+
4279
+ fmt::Writer w;
4280
+ w.write("The answer is {}.", 42);
4281
+ w.c_str(); // returns a C string
4282
+
4283
+ This doesn't do dynamic memory allocation for small strings and is less error
4284
+ prone as the lifetime of the string is the same as for ``std::string::c_str``
4285
+ which is well understood (hopefully).
4286
+
4287
+ * Improved consistency in naming functions that are a part of the public API.
4288
+ Now all public functions are lowercase following the standard library
4289
+ conventions. Previously it was a combination of lowercase and
4290
+ CapitalizedWords.
4291
+ Issue `#50 <https://github.com/fmtlib/fmt/issues/50>`_.
4292
+
4293
+ * Old functions are marked as deprecated and will be removed in the next
4294
+ release.
4295
+
4296
+ **Other Changes**
4297
+
4298
+ * Experimental support for printf format specifications (work in progress):
4299
+
4300
+ .. code:: c++
4301
+
4302
+ fmt::printf("The answer is %d.", 42);
4303
+ std::string s = fmt::sprintf("Look, a %s!", "string");
4304
+
4305
+ * Support for hexadecimal floating point format specifiers ``a`` and ``A``:
4306
+
4307
+ .. code:: c++
4308
+
4309
+ print("{:a}", -42.0); // Prints -0x1.5p+5
4310
+ print("{:A}", -42.0); // Prints -0X1.5P+5
4311
+
4312
+ * CMake option ``FMT_SHARED`` that specifies whether to build format as a
4313
+ shared library (off by default).
4314
+
4315
+ 0.9.0 - 2014-05-13
4316
+ ------------------
4317
+
4318
+ * More efficient implementation of variadic formatting functions.
4319
+
4320
+ * ``Writer::Format`` now has a variadic overload:
4321
+
4322
+ .. code:: c++
4323
+
4324
+ Writer out;
4325
+ out.Format("Look, I'm {}!", "variadic");
4326
+
4327
+ * For efficiency and consistency with other overloads, variadic overload of
4328
+ the ``Format`` function now returns ``Writer`` instead of ``std::string``.
4329
+ Use the ``str`` function to convert it to ``std::string``:
4330
+
4331
+ .. code:: c++
4332
+
4333
+ std::string s = str(Format("Look, I'm {}!", "variadic"));
4334
+
4335
+ * Replaced formatter actions with output sinks: ``NoAction`` -> ``NullSink``,
4336
+ ``Write`` -> ``FileSink``, ``ColorWriter`` -> ``ANSITerminalSink``.
4337
+ This improves naming consistency and shouldn't affect client code unless
4338
+ these classes are used directly which should be rarely needed.
4339
+
4340
+ * Added ``ThrowSystemError`` function that formats a message and throws
4341
+ ``SystemError`` containing the formatted message and system-specific error
4342
+ description. For example, the following code
4343
+
4344
+ .. code:: c++
4345
+
4346
+ FILE *f = fopen(filename, "r");
4347
+ if (!f)
4348
+ ThrowSystemError(errno, "Failed to open file '{}'") << filename;
4349
+
4350
+ will throw ``SystemError`` exception with description
4351
+ "Failed to open file '<filename>': No such file or directory" if file
4352
+ doesn't exist.
4353
+
4354
+ * Support for AppVeyor continuous integration platform.
4355
+
4356
+ * ``Format`` now throws ``SystemError`` in case of I/O errors.
4357
+
4358
+ * Improve test infrastructure. Print functions are now tested by redirecting
4359
+ the output to a pipe.
4360
+
4361
+ 0.8.0 - 2014-04-14
4362
+ ------------------
4363
+
4364
+ * Initial release