couchbase 3.5.4 → 3.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/CMakeLists.txt +8 -6
  4. data/ext/cache/cpm/{CPM_0.38.6.cmake → CPM_0.40.5.cmake} +152 -22
  5. data/ext/cache/extconf_include.rb +3 -3
  6. data/ext/cache/mozilla-ca-bundle.crt +94 -118
  7. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  8. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/CMakeLists.txt +30 -6
  9. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/utils.cmake +13 -2
  10. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger-inl.h +5 -7
  11. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/mpmc_blocking_q.h +3 -3
  12. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os-inl.h +3 -3
  13. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool-inl.h +3 -8
  14. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool.h +3 -14
  15. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/base.h +47 -31
  16. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format-inl.h +32 -8
  17. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format.h +22 -14
  18. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ranges.h +1 -1
  19. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/mdc.h +4 -0
  20. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter-inl.h +16 -2
  21. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink.h +1 -1
  22. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink.h +4 -4
  23. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/callback_sink.h +1 -1
  24. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/daily_file_sink.h +3 -0
  25. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/hourly_file_sink.h +2 -0
  26. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/msvc_sink.h +1 -1
  27. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +1 -1
  28. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/syslog_sink.h +3 -2
  29. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +9 -0
  30. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/version.h +2 -2
  31. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/format.cc → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/src/bundled_fmtlib_format.cpp} +10 -5
  32. data/ext/couchbase/CMakeLists.txt +3 -2
  33. data/ext/couchbase/cmake/APKBUILD.in +54 -0
  34. data/ext/couchbase/cmake/Backtrace.cmake +3 -1
  35. data/ext/couchbase/cmake/CPM.cmake +1 -1
  36. data/ext/couchbase/cmake/CompilerWarnings.cmake +0 -5
  37. data/ext/couchbase/cmake/Packaging.cmake +174 -11
  38. data/ext/couchbase/cmake/RPath.cmake +10 -0
  39. data/ext/couchbase/cmake/Testing.cmake +0 -4
  40. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +7 -26
  41. data/ext/couchbase/cmake/VersionInfo.cmake +4 -0
  42. data/ext/couchbase/cmake/build_version.hxx.in +1 -0
  43. data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +2 -2
  44. data/ext/couchbase/cmake/couchbase_cxx_client.pc.in +2 -2
  45. data/ext/couchbase/core/agent_config.cxx +1 -1
  46. data/ext/couchbase/core/agent_group_config.cxx +1 -1
  47. data/ext/couchbase/core/bucket.cxx +25 -23
  48. data/ext/couchbase/core/bucket.hxx +2 -1
  49. data/ext/couchbase/core/cluster.cxx +9 -9
  50. data/ext/couchbase/core/cluster.hxx +2 -1
  51. data/ext/couchbase/core/cluster_agent_config.cxx +1 -1
  52. data/ext/couchbase/core/collections_component.cxx +1 -1
  53. data/ext/couchbase/core/columnar/agent_config.cxx +2 -2
  54. data/ext/couchbase/core/columnar/error.hxx +0 -1
  55. data/ext/couchbase/core/columnar/query_component.cxx +2 -2
  56. data/ext/couchbase/core/config_profiles.cxx +1 -1
  57. data/ext/couchbase/core/core_sdk_shim.cxx +1 -1
  58. data/ext/couchbase/core/crud_component.cxx +1 -1
  59. data/ext/couchbase/core/design_document_namespace_fmt.hxx +1 -1
  60. data/ext/couchbase/core/diagnostics_fmt.hxx +1 -1
  61. data/ext/couchbase/core/document_id.cxx +1 -1
  62. data/ext/couchbase/core/document_id_fmt.hxx +1 -1
  63. data/ext/couchbase/core/error_context/analytics_json.hxx +3 -1
  64. data/ext/couchbase/core/error_context/key_value_json.hxx +1 -1
  65. data/ext/couchbase/core/error_context/query_public_json.hxx +1 -1
  66. data/ext/couchbase/core/error_context/subdocument_json.hxx +1 -1
  67. data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +1 -1
  68. data/ext/couchbase/core/fmt/key_value_extended_error_info.hxx +1 -1
  69. data/ext/couchbase/core/fmt/key_value_status_code.hxx +1 -1
  70. data/ext/couchbase/core/http_component.cxx +3 -3
  71. data/ext/couchbase/core/impl/analytics.cxx +1 -0
  72. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +1 -1
  73. data/ext/couchbase/core/impl/cluster.cxx +55 -18
  74. data/ext/couchbase/core/impl/collection.cxx +40 -15
  75. data/ext/couchbase/core/impl/date_range.cxx +2 -2
  76. data/ext/couchbase/core/impl/date_range_query.cxx +2 -2
  77. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +1 -1
  78. data/ext/couchbase/core/impl/error.cxx +27 -4
  79. data/ext/couchbase/core/impl/expiry.cxx +2 -2
  80. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +1 -2
  81. data/ext/couchbase/core/impl/get_replica.hxx +2 -0
  82. data/ext/couchbase/core/impl/key_value_error_context.cxx +6 -4
  83. data/ext/couchbase/core/impl/lookup_in_replica.hxx +2 -0
  84. data/ext/couchbase/core/impl/numeric_range.cxx +1 -1
  85. data/ext/couchbase/core/impl/observe_poll.cxx +7 -7
  86. data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
  87. data/ext/couchbase/core/impl/query.cxx +1 -0
  88. data/ext/couchbase/core/impl/query_error_context.cxx +3 -2
  89. data/ext/couchbase/core/impl/replica_utils.cxx +5 -5
  90. data/ext/couchbase/core/impl/replica_utils.hxx +2 -1
  91. data/ext/couchbase/core/impl/scope.cxx +5 -6
  92. data/ext/couchbase/core/impl/search.cxx +3 -1
  93. data/ext/couchbase/core/io/config_tracker.cxx +1 -1
  94. data/ext/couchbase/core/io/dns_client.cxx +23 -8
  95. data/ext/couchbase/core/io/http_command.hxx +2 -2
  96. data/ext/couchbase/core/io/http_parser.cxx +1 -1
  97. data/ext/couchbase/core/io/http_session.cxx +4 -0
  98. data/ext/couchbase/core/io/http_session.hxx +4 -2
  99. data/ext/couchbase/core/io/mcbp_command.hxx +2 -2
  100. data/ext/couchbase/core/key_value_config.cxx +2 -2
  101. data/ext/couchbase/core/logger/logger.cxx +1 -1
  102. data/ext/couchbase/core/logger/logger.hxx +1 -1
  103. data/ext/couchbase/core/management/rbac_fmt.hxx +1 -1
  104. data/ext/couchbase/core/mcbp/operation_queue.cxx +1 -1
  105. data/ext/couchbase/core/mcbp/packet.cxx +1 -1
  106. data/ext/couchbase/core/meta/features.hxx +16 -0
  107. data/ext/couchbase/core/meta/version.cxx +48 -7
  108. data/ext/couchbase/core/operations/document_analytics.cxx +23 -17
  109. data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
  110. data/ext/couchbase/core/operations/document_append.hxx +2 -0
  111. data/ext/couchbase/core/operations/document_decrement.hxx +2 -0
  112. data/ext/couchbase/core/operations/document_exists.hxx +2 -0
  113. data/ext/couchbase/core/operations/document_get.hxx +2 -0
  114. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +5 -4
  115. data/ext/couchbase/core/operations/document_get_and_lock.hxx +2 -0
  116. data/ext/couchbase/core/operations/document_get_and_touch.hxx +2 -0
  117. data/ext/couchbase/core/operations/document_get_any_replica.hxx +5 -3
  118. data/ext/couchbase/core/operations/document_get_projected.hxx +2 -0
  119. data/ext/couchbase/core/operations/document_increment.hxx +2 -0
  120. data/ext/couchbase/core/operations/document_insert.hxx +2 -0
  121. data/ext/couchbase/core/operations/document_lookup_in.hxx +2 -0
  122. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +5 -3
  123. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +5 -3
  124. data/ext/couchbase/core/operations/document_mutate_in.hxx +2 -0
  125. data/ext/couchbase/core/operations/document_prepend.hxx +2 -0
  126. data/ext/couchbase/core/operations/document_query.hxx +1 -0
  127. data/ext/couchbase/core/operations/document_remove.hxx +2 -0
  128. data/ext/couchbase/core/operations/document_replace.hxx +2 -0
  129. data/ext/couchbase/core/operations/document_search.hxx +1 -0
  130. data/ext/couchbase/core/operations/document_touch.hxx +2 -0
  131. data/ext/couchbase/core/operations/document_unlock.hxx +2 -0
  132. data/ext/couchbase/core/operations/document_upsert.hxx +2 -0
  133. data/ext/couchbase/core/operations/document_view.hxx +1 -0
  134. data/ext/couchbase/core/operations/http_noop.hxx +2 -0
  135. data/ext/couchbase/core/operations/management/CMakeLists.txt +0 -1
  136. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +1 -1
  137. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +1 -0
  138. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +1 -1
  139. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +1 -0
  140. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  141. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +1 -1
  142. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +1 -0
  143. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +1 -1
  144. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  145. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
  146. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  147. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +1 -0
  148. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +1 -1
  149. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +1 -0
  150. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +1 -0
  151. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +1 -1
  152. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +1 -0
  153. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +1 -0
  154. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +1 -1
  155. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +1 -0
  156. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +1 -1
  157. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +1 -0
  158. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +24 -16
  159. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +4 -3
  160. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +1 -0
  161. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +4 -3
  162. data/ext/couchbase/core/operations/management/bucket_create.hxx +1 -0
  163. data/ext/couchbase/core/operations/management/bucket_describe.cxx +1 -1
  164. data/ext/couchbase/core/operations/management/bucket_describe.hxx +1 -0
  165. data/ext/couchbase/core/operations/management/bucket_drop.cxx +1 -1
  166. data/ext/couchbase/core/operations/management/bucket_drop.hxx +1 -0
  167. data/ext/couchbase/core/operations/management/bucket_flush.cxx +1 -1
  168. data/ext/couchbase/core/operations/management/bucket_flush.hxx +1 -0
  169. data/ext/couchbase/core/operations/management/bucket_get.cxx +1 -1
  170. data/ext/couchbase/core/operations/management/bucket_get.hxx +1 -0
  171. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +1 -0
  172. data/ext/couchbase/core/operations/management/bucket_update.hxx +1 -0
  173. data/ext/couchbase/core/operations/management/change_password.cxx +1 -1
  174. data/ext/couchbase/core/operations/management/change_password.hxx +1 -0
  175. data/ext/couchbase/core/operations/management/cluster_describe.hxx +1 -0
  176. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  177. data/ext/couchbase/core/operations/management/collection_create.cxx +1 -1
  178. data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
  179. data/ext/couchbase/core/operations/management/collection_drop.cxx +1 -1
  180. data/ext/couchbase/core/operations/management/collection_drop.hxx +1 -0
  181. data/ext/couchbase/core/operations/management/collection_update.cxx +1 -1
  182. data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
  183. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
  184. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +1 -1
  185. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +3 -2
  186. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +1 -1
  187. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +3 -2
  188. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +3 -2
  189. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +1 -1
  190. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +3 -2
  191. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +3 -2
  192. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +1 -1
  193. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +3 -2
  194. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +1 -1
  195. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +3 -2
  196. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +1 -1
  197. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +3 -2
  198. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +1 -2
  199. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +3 -2
  200. data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
  201. data/ext/couchbase/core/operations/management/group_drop.cxx +1 -1
  202. data/ext/couchbase/core/operations/management/group_drop.hxx +1 -0
  203. data/ext/couchbase/core/operations/management/group_get.cxx +1 -1
  204. data/ext/couchbase/core/operations/management/group_get.hxx +1 -0
  205. data/ext/couchbase/core/operations/management/group_get_all.hxx +1 -0
  206. data/ext/couchbase/core/operations/management/group_upsert.hxx +1 -0
  207. data/ext/couchbase/core/operations/management/query_index_build.hxx +7 -5
  208. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +3 -0
  209. data/ext/couchbase/core/operations/management/query_index_create.cxx +1 -1
  210. data/ext/couchbase/core/operations/management/query_index_create.hxx +1 -0
  211. data/ext/couchbase/core/operations/management/query_index_drop.cxx +1 -1
  212. data/ext/couchbase/core/operations/management/query_index_drop.hxx +1 -0
  213. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +2 -0
  214. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  215. data/ext/couchbase/core/operations/management/role_get_all.hxx +1 -0
  216. data/ext/couchbase/core/operations/management/scope_create.cxx +1 -1
  217. data/ext/couchbase/core/operations/management/scope_create.hxx +1 -0
  218. data/ext/couchbase/core/operations/management/scope_drop.cxx +1 -1
  219. data/ext/couchbase/core/operations/management/scope_drop.hxx +1 -0
  220. data/ext/couchbase/core/operations/management/scope_get_all.cxx +1 -1
  221. data/ext/couchbase/core/operations/management/scope_get_all.hxx +1 -0
  222. data/ext/couchbase/core/operations/management/search_get_stats.hxx +1 -0
  223. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +1 -1
  224. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +1 -0
  225. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +1 -1
  226. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +1 -0
  227. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
  228. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  229. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +1 -1
  230. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +1 -0
  231. data/ext/couchbase/core/operations/management/search_index_drop.cxx +1 -1
  232. data/ext/couchbase/core/operations/management/search_index_drop.hxx +1 -0
  233. data/ext/couchbase/core/operations/management/search_index_get.cxx +1 -1
  234. data/ext/couchbase/core/operations/management/search_index_get.hxx +1 -0
  235. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +1 -1
  236. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +1 -0
  237. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +1 -1
  238. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
  239. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +1 -1
  240. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +1 -0
  241. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +1 -1
  242. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +1 -0
  243. data/ext/couchbase/core/operations/management/user_drop.hxx +1 -0
  244. data/ext/couchbase/core/operations/management/user_get.hxx +1 -0
  245. data/ext/couchbase/core/operations/management/user_get_all.hxx +1 -0
  246. data/ext/couchbase/core/operations/management/user_upsert.cxx +3 -3
  247. data/ext/couchbase/core/operations/management/user_upsert.hxx +1 -0
  248. data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
  249. data/ext/couchbase/core/operations/management/view_index_drop.hxx +1 -0
  250. data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
  251. data/ext/couchbase/core/operations/management/view_index_get.hxx +1 -0
  252. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +1 -1
  253. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
  254. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
  255. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +1 -0
  256. data/ext/couchbase/core/origin.cxx +3 -2
  257. data/ext/couchbase/core/platform/base64.h +8 -8
  258. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +1 -1
  259. data/ext/couchbase/core/protocol/client_response.hxx +1 -1
  260. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +1 -1
  261. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +1 -1
  262. data/ext/couchbase/core/protocol/magic_fmt.hxx +1 -1
  263. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +1 -1
  264. data/ext/couchbase/core/query_context.hxx +7 -6
  265. data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
  266. data/ext/couchbase/core/sasl/CMakeLists.txt +0 -1
  267. data/ext/couchbase/core/sasl/error_fmt.h +1 -1
  268. data/ext/couchbase/core/seed_config.cxx +2 -2
  269. data/ext/couchbase/core/service_type_fmt.hxx +1 -1
  270. data/ext/couchbase/core/topology/capabilities_fmt.hxx +1 -1
  271. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +2 -1
  272. data/ext/couchbase/core/topology/configuration_fmt.hxx +1 -1
  273. data/ext/couchbase/core/transactions/async_attempt_context.cxx +1 -1
  274. data/ext/couchbase/core/transactions/async_attempt_context.hxx +9 -22
  275. data/ext/couchbase/core/transactions/attempt_context.cxx +1 -1
  276. data/ext/couchbase/core/transactions/attempt_context.hxx +6 -33
  277. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +41 -41
  278. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +15 -16
  279. data/ext/couchbase/core/transactions/exceptions_fmt.hxx +1 -1
  280. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
  281. data/ext/couchbase/core/transactions/internal/client_record.hxx +4 -3
  282. data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +1 -1
  283. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +0 -2
  284. data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
  285. data/ext/couchbase/core/transactions/internal/logging.hxx +2 -0
  286. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +3 -0
  287. data/ext/couchbase/core/transactions/result_fmt.hxx +1 -1
  288. data/ext/couchbase/core/transactions/transaction_context.cxx +12 -2
  289. data/ext/couchbase/core/transactions/transaction_get_result.hxx +0 -20
  290. data/ext/couchbase/core/transactions/transaction_links.hxx +1 -1
  291. data/ext/couchbase/core/utils/join_strings.hxx +2 -2
  292. data/ext/couchbase/core/utils/keyspace.hxx +2 -1
  293. data/ext/couchbase/core/utils/url_codec.cxx +1 -1
  294. data/ext/couchbase/couchbase/common_options.hxx +16 -1
  295. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
  296. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +0 -2
  297. data/ext/couchbase/couchbase/fmt/cas.hxx +0 -2
  298. data/ext/couchbase/couchbase/fmt/durability_level.hxx +0 -2
  299. data/ext/couchbase/couchbase/fmt/error.hxx +0 -2
  300. data/ext/couchbase/couchbase/fmt/error_context.hxx +0 -2
  301. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +0 -2
  302. data/ext/couchbase/couchbase/fmt/query_profile.hxx +0 -2
  303. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +0 -2
  304. data/ext/couchbase/couchbase/fmt/query_status.hxx +0 -2
  305. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +5 -1
  306. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +0 -2
  307. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +0 -2
  308. data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +0 -2
  309. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +16 -20
  310. data/ext/couchbase.cxx +1 -0
  311. data/ext/extconf.rb +11 -0
  312. data/ext/rcb_analytics.cxx +7 -7
  313. data/ext/rcb_backend.cxx +83 -2
  314. data/ext/rcb_buckets.cxx +1 -1
  315. data/ext/rcb_collections.cxx +1 -1
  316. data/ext/rcb_crud.cxx +51 -30
  317. data/ext/rcb_diagnostics.cxx +1 -1
  318. data/ext/rcb_exceptions.cxx +3 -2
  319. data/ext/rcb_extras.cxx +1 -1
  320. data/ext/rcb_logger.cxx +6 -1
  321. data/ext/rcb_logger.hxx +3 -0
  322. data/ext/rcb_range_scan.cxx +3 -5
  323. data/ext/rcb_search.cxx +1 -1
  324. data/ext/rcb_users.cxx +2 -2
  325. data/ext/rcb_utils.hxx +32 -0
  326. data/lib/couchbase/bucket.rb +0 -8
  327. data/lib/couchbase/cluster.rb +2 -13
  328. data/lib/couchbase/collection.rb +0 -43
  329. data/lib/couchbase/collection_options.rb +3 -3
  330. data/lib/couchbase/datastructures/couchbase_queue.rb +1 -1
  331. data/lib/couchbase/datastructures/couchbase_set.rb +1 -1
  332. data/lib/couchbase/deprecations.rb +61 -0
  333. data/lib/couchbase/fork_hooks.rb +32 -0
  334. data/lib/couchbase/logger.rb +3 -3
  335. data/lib/couchbase/management/analytics_index_manager.rb +1 -1
  336. data/lib/couchbase/management/bucket_manager.rb +1 -1
  337. data/lib/couchbase/management/collection_manager.rb +1 -1
  338. data/lib/couchbase/management/query_index_manager.rb +1 -1
  339. data/lib/couchbase/options.rb +50 -2
  340. data/lib/couchbase/protostellar/request_generator/query.rb +1 -1
  341. data/lib/couchbase/utils/time.rb +1 -1
  342. data/lib/couchbase/version.rb +1 -1
  343. data/lib/couchbase.rb +2 -0
  344. metadata +133 -153
  345. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
  346. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
  347. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
  348. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
  349. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
  350. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
  351. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
  352. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
  353. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
  354. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
  355. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
  356. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
  357. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
  358. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
  359. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
  360. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
  361. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
  362. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
  363. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
  364. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
  365. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
  366. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
  367. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
  368. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
  369. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
  370. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
  371. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
  372. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
  373. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
  374. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
  375. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
  376. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
  377. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
  378. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
  379. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
  380. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
  381. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
  382. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
  383. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
  384. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
  385. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
  386. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
  387. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
  388. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
  389. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
  390. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
  391. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
  392. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
  393. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
  394. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
  395. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  396. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
  397. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
  398. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
  399. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
  400. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
  401. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
  402. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
  403. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
  404. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
  405. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
  406. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
  407. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
  408. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
  409. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
  410. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
  411. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
  412. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
  413. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
  414. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
  415. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
  416. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
  417. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
  418. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
  419. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
  420. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
  421. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
  422. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
  423. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
  424. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
  425. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
  426. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
  427. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
  428. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
  429. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
  430. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
  431. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
  432. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
  433. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  434. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
  435. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
  436. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
  437. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  438. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
  439. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
  440. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
  441. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  442. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  443. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
  444. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  445. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
  446. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
  447. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
  448. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  449. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
  450. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
  451. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
  452. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
  453. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
  454. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
  455. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
  456. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
  457. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
  458. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
  459. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
  460. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
  461. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
  462. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
  463. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
  464. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
  465. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
  466. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/stdout_sinks.cpp +0 -0
@@ -1,738 +0,0 @@
1
- // Formatting library for C++ - range and tuple support
2
- //
3
- // Copyright (c) 2012 - present, Victor Zverovich and {fmt} contributors
4
- // All rights reserved.
5
- //
6
- // For the license information refer to format.h.
7
-
8
- #ifndef FMT_RANGES_H_
9
- #define FMT_RANGES_H_
10
-
11
- #include <initializer_list>
12
- #include <tuple>
13
- #include <type_traits>
14
-
15
- #include "format.h"
16
-
17
- FMT_BEGIN_NAMESPACE
18
-
19
- namespace detail {
20
-
21
- template <typename Range, typename OutputIt>
22
- auto copy(const Range& range, OutputIt out) -> OutputIt {
23
- for (auto it = range.begin(), end = range.end(); it != end; ++it)
24
- *out++ = *it;
25
- return out;
26
- }
27
-
28
- template <typename OutputIt>
29
- auto copy(const char* str, OutputIt out) -> OutputIt {
30
- while (*str) *out++ = *str++;
31
- return out;
32
- }
33
-
34
- template <typename OutputIt> auto copy(char ch, OutputIt out) -> OutputIt {
35
- *out++ = ch;
36
- return out;
37
- }
38
-
39
- template <typename OutputIt> auto copy(wchar_t ch, OutputIt out) -> OutputIt {
40
- *out++ = ch;
41
- return out;
42
- }
43
-
44
- // Returns true if T has a std::string-like interface, like std::string_view.
45
- template <typename T> class is_std_string_like {
46
- template <typename U>
47
- static auto check(U* p)
48
- -> decltype((void)p->find('a'), p->length(), (void)p->data(), int());
49
- template <typename> static void check(...);
50
-
51
- public:
52
- static constexpr const bool value =
53
- is_string<T>::value ||
54
- std::is_convertible<T, std_string_view<char>>::value ||
55
- !std::is_void<decltype(check<T>(nullptr))>::value;
56
- };
57
-
58
- template <typename Char>
59
- struct is_std_string_like<fmt::basic_string_view<Char>> : std::true_type {};
60
-
61
- template <typename T> class is_map {
62
- template <typename U> static auto check(U*) -> typename U::mapped_type;
63
- template <typename> static void check(...);
64
-
65
- public:
66
- #ifdef FMT_FORMAT_MAP_AS_LIST // DEPRECATED!
67
- static constexpr const bool value = false;
68
- #else
69
- static constexpr const bool value =
70
- !std::is_void<decltype(check<T>(nullptr))>::value;
71
- #endif
72
- };
73
-
74
- template <typename T> class is_set {
75
- template <typename U> static auto check(U*) -> typename U::key_type;
76
- template <typename> static void check(...);
77
-
78
- public:
79
- #ifdef FMT_FORMAT_SET_AS_LIST // DEPRECATED!
80
- static constexpr const bool value = false;
81
- #else
82
- static constexpr const bool value =
83
- !std::is_void<decltype(check<T>(nullptr))>::value && !is_map<T>::value;
84
- #endif
85
- };
86
-
87
- template <typename... Ts> struct conditional_helper {};
88
-
89
- template <typename T, typename _ = void> struct is_range_ : std::false_type {};
90
-
91
- #if !FMT_MSC_VERSION || FMT_MSC_VERSION > 1800
92
-
93
- # define FMT_DECLTYPE_RETURN(val) \
94
- ->decltype(val) { return val; } \
95
- static_assert( \
96
- true, "") // This makes it so that a semicolon is required after the
97
- // macro, which helps clang-format handle the formatting.
98
-
99
- // C array overload
100
- template <typename T, std::size_t N>
101
- auto range_begin(const T (&arr)[N]) -> const T* {
102
- return arr;
103
- }
104
- template <typename T, std::size_t N>
105
- auto range_end(const T (&arr)[N]) -> const T* {
106
- return arr + N;
107
- }
108
-
109
- template <typename T, typename Enable = void>
110
- struct has_member_fn_begin_end_t : std::false_type {};
111
-
112
- template <typename T>
113
- struct has_member_fn_begin_end_t<T, void_t<decltype(std::declval<T>().begin()),
114
- decltype(std::declval<T>().end())>>
115
- : std::true_type {};
116
-
117
- // Member function overload
118
- template <typename T>
119
- auto range_begin(T&& rng) FMT_DECLTYPE_RETURN(static_cast<T&&>(rng).begin());
120
- template <typename T>
121
- auto range_end(T&& rng) FMT_DECLTYPE_RETURN(static_cast<T&&>(rng).end());
122
-
123
- // ADL overload. Only participates in overload resolution if member functions
124
- // are not found.
125
- template <typename T>
126
- auto range_begin(T&& rng)
127
- -> enable_if_t<!has_member_fn_begin_end_t<T&&>::value,
128
- decltype(begin(static_cast<T&&>(rng)))> {
129
- return begin(static_cast<T&&>(rng));
130
- }
131
- template <typename T>
132
- auto range_end(T&& rng) -> enable_if_t<!has_member_fn_begin_end_t<T&&>::value,
133
- decltype(end(static_cast<T&&>(rng)))> {
134
- return end(static_cast<T&&>(rng));
135
- }
136
-
137
- template <typename T, typename Enable = void>
138
- struct has_const_begin_end : std::false_type {};
139
- template <typename T, typename Enable = void>
140
- struct has_mutable_begin_end : std::false_type {};
141
-
142
- template <typename T>
143
- struct has_const_begin_end<
144
- T,
145
- void_t<
146
- decltype(detail::range_begin(std::declval<const remove_cvref_t<T>&>())),
147
- decltype(detail::range_end(std::declval<const remove_cvref_t<T>&>()))>>
148
- : std::true_type {};
149
-
150
- template <typename T>
151
- struct has_mutable_begin_end<
152
- T, void_t<decltype(detail::range_begin(std::declval<T>())),
153
- decltype(detail::range_end(std::declval<T>())),
154
- // the extra int here is because older versions of MSVC don't
155
- // SFINAE properly unless there are distinct types
156
- int>> : std::true_type {};
157
-
158
- template <typename T>
159
- struct is_range_<T, void>
160
- : std::integral_constant<bool, (has_const_begin_end<T>::value ||
161
- has_mutable_begin_end<T>::value)> {};
162
- # undef FMT_DECLTYPE_RETURN
163
- #endif
164
-
165
- // tuple_size and tuple_element check.
166
- template <typename T> class is_tuple_like_ {
167
- template <typename U>
168
- static auto check(U* p) -> decltype(std::tuple_size<U>::value, int());
169
- template <typename> static void check(...);
170
-
171
- public:
172
- static constexpr const bool value =
173
- !std::is_void<decltype(check<T>(nullptr))>::value;
174
- };
175
-
176
- // Check for integer_sequence
177
- #if defined(__cpp_lib_integer_sequence) || FMT_MSC_VERSION >= 1900
178
- template <typename T, T... N>
179
- using integer_sequence = std::integer_sequence<T, N...>;
180
- template <size_t... N> using index_sequence = std::index_sequence<N...>;
181
- template <size_t N> using make_index_sequence = std::make_index_sequence<N>;
182
- #else
183
- template <typename T, T... N> struct integer_sequence {
184
- using value_type = T;
185
-
186
- static FMT_CONSTEXPR auto size() -> size_t { return sizeof...(N); }
187
- };
188
-
189
- template <size_t... N> using index_sequence = integer_sequence<size_t, N...>;
190
-
191
- template <typename T, size_t N, T... Ns>
192
- struct make_integer_sequence : make_integer_sequence<T, N - 1, N - 1, Ns...> {};
193
- template <typename T, T... Ns>
194
- struct make_integer_sequence<T, 0, Ns...> : integer_sequence<T, Ns...> {};
195
-
196
- template <size_t N>
197
- using make_index_sequence = make_integer_sequence<size_t, N>;
198
- #endif
199
-
200
- template <typename T>
201
- using tuple_index_sequence = make_index_sequence<std::tuple_size<T>::value>;
202
-
203
- template <typename T, typename C, bool = is_tuple_like_<T>::value>
204
- class is_tuple_formattable_ {
205
- public:
206
- static constexpr const bool value = false;
207
- };
208
- template <typename T, typename C> class is_tuple_formattable_<T, C, true> {
209
- template <std::size_t... Is>
210
- static auto check2(index_sequence<Is...>,
211
- integer_sequence<bool, (Is == Is)...>) -> std::true_type;
212
- static auto check2(...) -> std::false_type;
213
- template <std::size_t... Is>
214
- static auto check(index_sequence<Is...>) -> decltype(check2(
215
- index_sequence<Is...>{},
216
- integer_sequence<bool,
217
- (is_formattable<typename std::tuple_element<Is, T>::type,
218
- C>::value)...>{}));
219
-
220
- public:
221
- static constexpr const bool value =
222
- decltype(check(tuple_index_sequence<T>{}))::value;
223
- };
224
-
225
- template <typename Tuple, typename F, size_t... Is>
226
- FMT_CONSTEXPR void for_each(index_sequence<Is...>, Tuple&& t, F&& f) {
227
- using std::get;
228
- // Using a free function get<Is>(Tuple) now.
229
- const int unused[] = {0, ((void)f(get<Is>(t)), 0)...};
230
- ignore_unused(unused);
231
- }
232
-
233
- template <typename Tuple, typename F>
234
- FMT_CONSTEXPR void for_each(Tuple&& t, F&& f) {
235
- for_each(tuple_index_sequence<remove_cvref_t<Tuple>>(),
236
- std::forward<Tuple>(t), std::forward<F>(f));
237
- }
238
-
239
- template <typename Tuple1, typename Tuple2, typename F, size_t... Is>
240
- void for_each2(index_sequence<Is...>, Tuple1&& t1, Tuple2&& t2, F&& f) {
241
- using std::get;
242
- const int unused[] = {0, ((void)f(get<Is>(t1), get<Is>(t2)), 0)...};
243
- ignore_unused(unused);
244
- }
245
-
246
- template <typename Tuple1, typename Tuple2, typename F>
247
- void for_each2(Tuple1&& t1, Tuple2&& t2, F&& f) {
248
- for_each2(tuple_index_sequence<remove_cvref_t<Tuple1>>(),
249
- std::forward<Tuple1>(t1), std::forward<Tuple2>(t2),
250
- std::forward<F>(f));
251
- }
252
-
253
- namespace tuple {
254
- // Workaround a bug in MSVC 2019 (v140).
255
- template <typename Char, typename... T>
256
- using result_t = std::tuple<formatter<remove_cvref_t<T>, Char>...>;
257
-
258
- using std::get;
259
- template <typename Tuple, typename Char, std::size_t... Is>
260
- auto get_formatters(index_sequence<Is...>)
261
- -> result_t<Char, decltype(get<Is>(std::declval<Tuple>()))...>;
262
- } // namespace tuple
263
-
264
- #if FMT_MSC_VERSION && FMT_MSC_VERSION < 1920
265
- // Older MSVC doesn't get the reference type correctly for arrays.
266
- template <typename R> struct range_reference_type_impl {
267
- using type = decltype(*detail::range_begin(std::declval<R&>()));
268
- };
269
-
270
- template <typename T, std::size_t N> struct range_reference_type_impl<T[N]> {
271
- using type = T&;
272
- };
273
-
274
- template <typename T>
275
- using range_reference_type = typename range_reference_type_impl<T>::type;
276
- #else
277
- template <typename Range>
278
- using range_reference_type =
279
- decltype(*detail::range_begin(std::declval<Range&>()));
280
- #endif
281
-
282
- // We don't use the Range's value_type for anything, but we do need the Range's
283
- // reference type, with cv-ref stripped.
284
- template <typename Range>
285
- using uncvref_type = remove_cvref_t<range_reference_type<Range>>;
286
-
287
- template <typename Formatter>
288
- FMT_CONSTEXPR auto maybe_set_debug_format(Formatter& f, bool set)
289
- -> decltype(f.set_debug_format(set)) {
290
- f.set_debug_format(set);
291
- }
292
- template <typename Formatter>
293
- FMT_CONSTEXPR void maybe_set_debug_format(Formatter&, ...) {}
294
-
295
- // These are not generic lambdas for compatibility with C++11.
296
- template <typename ParseContext> struct parse_empty_specs {
297
- template <typename Formatter> FMT_CONSTEXPR void operator()(Formatter& f) {
298
- f.parse(ctx);
299
- detail::maybe_set_debug_format(f, true);
300
- }
301
- ParseContext& ctx;
302
- };
303
- template <typename FormatContext> struct format_tuple_element {
304
- using char_type = typename FormatContext::char_type;
305
-
306
- template <typename T>
307
- void operator()(const formatter<T, char_type>& f, const T& v) {
308
- if (i > 0)
309
- ctx.advance_to(detail::copy_str<char_type>(separator, ctx.out()));
310
- ctx.advance_to(f.format(v, ctx));
311
- ++i;
312
- }
313
-
314
- int i;
315
- FormatContext& ctx;
316
- basic_string_view<char_type> separator;
317
- };
318
-
319
- } // namespace detail
320
-
321
- template <typename T> struct is_tuple_like {
322
- static constexpr const bool value =
323
- detail::is_tuple_like_<T>::value && !detail::is_range_<T>::value;
324
- };
325
-
326
- template <typename T, typename C> struct is_tuple_formattable {
327
- static constexpr const bool value =
328
- detail::is_tuple_formattable_<T, C>::value;
329
- };
330
-
331
- template <typename Tuple, typename Char>
332
- struct formatter<Tuple, Char,
333
- enable_if_t<fmt::is_tuple_like<Tuple>::value &&
334
- fmt::is_tuple_formattable<Tuple, Char>::value>> {
335
- private:
336
- decltype(detail::tuple::get_formatters<Tuple, Char>(
337
- detail::tuple_index_sequence<Tuple>())) formatters_;
338
-
339
- basic_string_view<Char> separator_ = detail::string_literal<Char, ',', ' '>{};
340
- basic_string_view<Char> opening_bracket_ =
341
- detail::string_literal<Char, '('>{};
342
- basic_string_view<Char> closing_bracket_ =
343
- detail::string_literal<Char, ')'>{};
344
-
345
- public:
346
- FMT_CONSTEXPR formatter() {}
347
-
348
- FMT_CONSTEXPR void set_separator(basic_string_view<Char> sep) {
349
- separator_ = sep;
350
- }
351
-
352
- FMT_CONSTEXPR void set_brackets(basic_string_view<Char> open,
353
- basic_string_view<Char> close) {
354
- opening_bracket_ = open;
355
- closing_bracket_ = close;
356
- }
357
-
358
- template <typename ParseContext>
359
- FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {
360
- auto it = ctx.begin();
361
- if (it != ctx.end() && *it != '}')
362
- FMT_THROW(format_error("invalid format specifier"));
363
- detail::for_each(formatters_, detail::parse_empty_specs<ParseContext>{ctx});
364
- return it;
365
- }
366
-
367
- template <typename FormatContext>
368
- auto format(const Tuple& value, FormatContext& ctx) const
369
- -> decltype(ctx.out()) {
370
- ctx.advance_to(detail::copy_str<Char>(opening_bracket_, ctx.out()));
371
- detail::for_each2(
372
- formatters_, value,
373
- detail::format_tuple_element<FormatContext>{0, ctx, separator_});
374
- return detail::copy_str<Char>(closing_bracket_, ctx.out());
375
- }
376
- };
377
-
378
- template <typename T, typename Char> struct is_range {
379
- static constexpr const bool value =
380
- detail::is_range_<T>::value && !detail::is_std_string_like<T>::value &&
381
- !std::is_convertible<T, std::basic_string<Char>>::value &&
382
- !std::is_convertible<T, detail::std_string_view<Char>>::value;
383
- };
384
-
385
- namespace detail {
386
- template <typename Context> struct range_mapper {
387
- using mapper = arg_mapper<Context>;
388
-
389
- template <typename T,
390
- FMT_ENABLE_IF(has_formatter<remove_cvref_t<T>, Context>::value)>
391
- static auto map(T&& value) -> T&& {
392
- return static_cast<T&&>(value);
393
- }
394
- template <typename T,
395
- FMT_ENABLE_IF(!has_formatter<remove_cvref_t<T>, Context>::value)>
396
- static auto map(T&& value)
397
- -> decltype(mapper().map(static_cast<T&&>(value))) {
398
- return mapper().map(static_cast<T&&>(value));
399
- }
400
- };
401
-
402
- template <typename Char, typename Element>
403
- using range_formatter_type =
404
- formatter<remove_cvref_t<decltype(range_mapper<buffer_context<Char>>{}.map(
405
- std::declval<Element>()))>,
406
- Char>;
407
-
408
- template <typename R>
409
- using maybe_const_range =
410
- conditional_t<has_const_begin_end<R>::value, const R, R>;
411
-
412
- // Workaround a bug in MSVC 2015 and earlier.
413
- #if !FMT_MSC_VERSION || FMT_MSC_VERSION >= 1910
414
- template <typename R, typename Char>
415
- struct is_formattable_delayed
416
- : is_formattable<uncvref_type<maybe_const_range<R>>, Char> {};
417
- #endif
418
- } // namespace detail
419
-
420
- template <typename...> struct conjunction : std::true_type {};
421
- template <typename P> struct conjunction<P> : P {};
422
- template <typename P1, typename... Pn>
423
- struct conjunction<P1, Pn...>
424
- : conditional_t<bool(P1::value), conjunction<Pn...>, P1> {};
425
-
426
- template <typename T, typename Char, typename Enable = void>
427
- struct range_formatter;
428
-
429
- template <typename T, typename Char>
430
- struct range_formatter<
431
- T, Char,
432
- enable_if_t<conjunction<std::is_same<T, remove_cvref_t<T>>,
433
- is_formattable<T, Char>>::value>> {
434
- private:
435
- detail::range_formatter_type<Char, T> underlying_;
436
- basic_string_view<Char> separator_ = detail::string_literal<Char, ',', ' '>{};
437
- basic_string_view<Char> opening_bracket_ =
438
- detail::string_literal<Char, '['>{};
439
- basic_string_view<Char> closing_bracket_ =
440
- detail::string_literal<Char, ']'>{};
441
-
442
- public:
443
- FMT_CONSTEXPR range_formatter() {}
444
-
445
- FMT_CONSTEXPR auto underlying() -> detail::range_formatter_type<Char, T>& {
446
- return underlying_;
447
- }
448
-
449
- FMT_CONSTEXPR void set_separator(basic_string_view<Char> sep) {
450
- separator_ = sep;
451
- }
452
-
453
- FMT_CONSTEXPR void set_brackets(basic_string_view<Char> open,
454
- basic_string_view<Char> close) {
455
- opening_bracket_ = open;
456
- closing_bracket_ = close;
457
- }
458
-
459
- template <typename ParseContext>
460
- FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {
461
- auto it = ctx.begin();
462
- auto end = ctx.end();
463
-
464
- if (it != end && *it == 'n') {
465
- set_brackets({}, {});
466
- ++it;
467
- }
468
-
469
- if (it != end && *it != '}') {
470
- if (*it != ':') FMT_THROW(format_error("invalid format specifier"));
471
- ++it;
472
- } else {
473
- detail::maybe_set_debug_format(underlying_, true);
474
- }
475
-
476
- ctx.advance_to(it);
477
- return underlying_.parse(ctx);
478
- }
479
-
480
- template <typename R, typename FormatContext>
481
- auto format(R&& range, FormatContext& ctx) const -> decltype(ctx.out()) {
482
- detail::range_mapper<buffer_context<Char>> mapper;
483
- auto out = ctx.out();
484
- out = detail::copy_str<Char>(opening_bracket_, out);
485
- int i = 0;
486
- auto it = detail::range_begin(range);
487
- auto end = detail::range_end(range);
488
- for (; it != end; ++it) {
489
- if (i > 0) out = detail::copy_str<Char>(separator_, out);
490
- ctx.advance_to(out);
491
- auto&& item = *it;
492
- out = underlying_.format(mapper.map(item), ctx);
493
- ++i;
494
- }
495
- out = detail::copy_str<Char>(closing_bracket_, out);
496
- return out;
497
- }
498
- };
499
-
500
- enum class range_format { disabled, map, set, sequence, string, debug_string };
501
-
502
- namespace detail {
503
- template <typename T>
504
- struct range_format_kind_
505
- : std::integral_constant<range_format,
506
- std::is_same<uncvref_type<T>, T>::value
507
- ? range_format::disabled
508
- : is_map<T>::value ? range_format::map
509
- : is_set<T>::value ? range_format::set
510
- : range_format::sequence> {};
511
-
512
- template <range_format K, typename R, typename Char, typename Enable = void>
513
- struct range_default_formatter;
514
-
515
- template <range_format K>
516
- using range_format_constant = std::integral_constant<range_format, K>;
517
-
518
- template <range_format K, typename R, typename Char>
519
- struct range_default_formatter<
520
- K, R, Char,
521
- enable_if_t<(K == range_format::sequence || K == range_format::map ||
522
- K == range_format::set)>> {
523
- using range_type = detail::maybe_const_range<R>;
524
- range_formatter<detail::uncvref_type<range_type>, Char> underlying_;
525
-
526
- FMT_CONSTEXPR range_default_formatter() { init(range_format_constant<K>()); }
527
-
528
- FMT_CONSTEXPR void init(range_format_constant<range_format::set>) {
529
- underlying_.set_brackets(detail::string_literal<Char, '{'>{},
530
- detail::string_literal<Char, '}'>{});
531
- }
532
-
533
- FMT_CONSTEXPR void init(range_format_constant<range_format::map>) {
534
- underlying_.set_brackets(detail::string_literal<Char, '{'>{},
535
- detail::string_literal<Char, '}'>{});
536
- underlying_.underlying().set_brackets({}, {});
537
- underlying_.underlying().set_separator(
538
- detail::string_literal<Char, ':', ' '>{});
539
- }
540
-
541
- FMT_CONSTEXPR void init(range_format_constant<range_format::sequence>) {}
542
-
543
- template <typename ParseContext>
544
- FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {
545
- return underlying_.parse(ctx);
546
- }
547
-
548
- template <typename FormatContext>
549
- auto format(range_type& range, FormatContext& ctx) const
550
- -> decltype(ctx.out()) {
551
- return underlying_.format(range, ctx);
552
- }
553
- };
554
- } // namespace detail
555
-
556
- template <typename T, typename Char, typename Enable = void>
557
- struct range_format_kind
558
- : conditional_t<
559
- is_range<T, Char>::value, detail::range_format_kind_<T>,
560
- std::integral_constant<range_format, range_format::disabled>> {};
561
-
562
- template <typename R, typename Char>
563
- struct formatter<
564
- R, Char,
565
- enable_if_t<conjunction<bool_constant<range_format_kind<R, Char>::value !=
566
- range_format::disabled>
567
- // Workaround a bug in MSVC 2015 and earlier.
568
- #if !FMT_MSC_VERSION || FMT_MSC_VERSION >= 1910
569
- ,
570
- detail::is_formattable_delayed<R, Char>
571
- #endif
572
- >::value>>
573
- : detail::range_default_formatter<range_format_kind<R, Char>::value, R,
574
- Char> {
575
- };
576
-
577
- template <typename Char, typename... T> struct tuple_join_view : detail::view {
578
- const std::tuple<T...>& tuple;
579
- basic_string_view<Char> sep;
580
-
581
- tuple_join_view(const std::tuple<T...>& t, basic_string_view<Char> s)
582
- : tuple(t), sep{s} {}
583
- };
584
-
585
- // Define FMT_TUPLE_JOIN_SPECIFIERS to enable experimental format specifiers
586
- // support in tuple_join. It is disabled by default because of issues with
587
- // the dynamic width and precision.
588
- #ifndef FMT_TUPLE_JOIN_SPECIFIERS
589
- # define FMT_TUPLE_JOIN_SPECIFIERS 0
590
- #endif
591
-
592
- template <typename Char, typename... T>
593
- struct formatter<tuple_join_view<Char, T...>, Char> {
594
- template <typename ParseContext>
595
- FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {
596
- return do_parse(ctx, std::integral_constant<size_t, sizeof...(T)>());
597
- }
598
-
599
- template <typename FormatContext>
600
- auto format(const tuple_join_view<Char, T...>& value,
601
- FormatContext& ctx) const -> typename FormatContext::iterator {
602
- return do_format(value, ctx,
603
- std::integral_constant<size_t, sizeof...(T)>());
604
- }
605
-
606
- private:
607
- std::tuple<formatter<typename std::decay<T>::type, Char>...> formatters_;
608
-
609
- template <typename ParseContext>
610
- FMT_CONSTEXPR auto do_parse(ParseContext& ctx,
611
- std::integral_constant<size_t, 0>)
612
- -> decltype(ctx.begin()) {
613
- return ctx.begin();
614
- }
615
-
616
- template <typename ParseContext, size_t N>
617
- FMT_CONSTEXPR auto do_parse(ParseContext& ctx,
618
- std::integral_constant<size_t, N>)
619
- -> decltype(ctx.begin()) {
620
- auto end = ctx.begin();
621
- #if FMT_TUPLE_JOIN_SPECIFIERS
622
- end = std::get<sizeof...(T) - N>(formatters_).parse(ctx);
623
- if (N > 1) {
624
- auto end1 = do_parse(ctx, std::integral_constant<size_t, N - 1>());
625
- if (end != end1)
626
- FMT_THROW(format_error("incompatible format specs for tuple elements"));
627
- }
628
- #endif
629
- return end;
630
- }
631
-
632
- template <typename FormatContext>
633
- auto do_format(const tuple_join_view<Char, T...>&, FormatContext& ctx,
634
- std::integral_constant<size_t, 0>) const ->
635
- typename FormatContext::iterator {
636
- return ctx.out();
637
- }
638
-
639
- template <typename FormatContext, size_t N>
640
- auto do_format(const tuple_join_view<Char, T...>& value, FormatContext& ctx,
641
- std::integral_constant<size_t, N>) const ->
642
- typename FormatContext::iterator {
643
- auto out = std::get<sizeof...(T) - N>(formatters_)
644
- .format(std::get<sizeof...(T) - N>(value.tuple), ctx);
645
- if (N > 1) {
646
- out = std::copy(value.sep.begin(), value.sep.end(), out);
647
- ctx.advance_to(out);
648
- return do_format(value, ctx, std::integral_constant<size_t, N - 1>());
649
- }
650
- return out;
651
- }
652
- };
653
-
654
- namespace detail {
655
- // Check if T has an interface like a container adaptor (e.g. std::stack,
656
- // std::queue, std::priority_queue).
657
- template <typename T> class is_container_adaptor_like {
658
- template <typename U> static auto check(U* p) -> typename U::container_type;
659
- template <typename> static void check(...);
660
-
661
- public:
662
- static constexpr const bool value =
663
- !std::is_void<decltype(check<T>(nullptr))>::value;
664
- };
665
-
666
- template <typename Container> struct all {
667
- const Container& c;
668
- auto begin() const -> typename Container::const_iterator { return c.begin(); }
669
- auto end() const -> typename Container::const_iterator { return c.end(); }
670
- };
671
- } // namespace detail
672
-
673
- template <typename T, typename Char>
674
- struct formatter<
675
- T, Char,
676
- enable_if_t<conjunction<detail::is_container_adaptor_like<T>,
677
- bool_constant<range_format_kind<T, Char>::value ==
678
- range_format::disabled>>::value>>
679
- : formatter<detail::all<typename T::container_type>, Char> {
680
- using all = detail::all<typename T::container_type>;
681
- template <typename FormatContext>
682
- auto format(const T& t, FormatContext& ctx) const -> decltype(ctx.out()) {
683
- struct getter : T {
684
- static auto get(const T& t) -> all {
685
- return {t.*(&getter::c)}; // Access c through the derived class.
686
- }
687
- };
688
- return formatter<all>::format(getter::get(t), ctx);
689
- }
690
- };
691
-
692
- FMT_BEGIN_EXPORT
693
-
694
- /**
695
- \rst
696
- Returns an object that formats `tuple` with elements separated by `sep`.
697
-
698
- **Example**::
699
-
700
- std::tuple<int, char> t = {1, 'a'};
701
- fmt::print("{}", fmt::join(t, ", "));
702
- // Output: "1, a"
703
- \endrst
704
- */
705
- template <typename... T>
706
- FMT_CONSTEXPR auto join(const std::tuple<T...>& tuple, string_view sep)
707
- -> tuple_join_view<char, T...> {
708
- return {tuple, sep};
709
- }
710
-
711
- template <typename... T>
712
- FMT_CONSTEXPR auto join(const std::tuple<T...>& tuple,
713
- basic_string_view<wchar_t> sep)
714
- -> tuple_join_view<wchar_t, T...> {
715
- return {tuple, sep};
716
- }
717
-
718
- /**
719
- \rst
720
- Returns an object that formats `initializer_list` with elements separated by
721
- `sep`.
722
-
723
- **Example**::
724
-
725
- fmt::print("{}", fmt::join({1, 2, 3}, ", "));
726
- // Output: "1, 2, 3"
727
- \endrst
728
- */
729
- template <typename T>
730
- auto join(std::initializer_list<T> list, string_view sep)
731
- -> join_view<const T*, const T*> {
732
- return join(std::begin(list), std::end(list), sep);
733
- }
734
-
735
- FMT_END_EXPORT
736
- FMT_END_NAMESPACE
737
-
738
- #endif // FMT_RANGES_H_