couchbase 3.0.0-universal-darwin-19 → 3.0.1-universal-darwin-19
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/CMakeLists.txt +86 -169
- data/ext/build_version.hxx.in +3 -2
- data/ext/cmake/Backtrace.cmake +35 -0
- data/ext/cmake/BuildTracing.cmake +6 -0
- data/ext/cmake/Cache.cmake +29 -0
- data/ext/cmake/CompilerWarnings.cmake +78 -0
- data/ext/cmake/PreventInSourceBuilds.cmake +18 -0
- data/ext/cmake/Sanitizers.cmake +66 -0
- data/ext/cmake/StandardProjectSettings.cmake +40 -0
- data/ext/cmake/StaticAnalyzers.cmake +37 -0
- data/ext/cmake/Testing.cmake +52 -0
- data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
- data/ext/cmake/VersionInfo.cmake +37 -0
- data/ext/couchbase/bucket.hxx +37 -12
- data/ext/couchbase/capabilities.hxx +117 -0
- data/ext/couchbase/cbcrypto/cbcrypto.cc +15 -15
- data/ext/couchbase/cluster.hxx +34 -2
- data/ext/couchbase/cluster_options.hxx +1 -0
- data/ext/couchbase/configuration.hxx +228 -52
- data/ext/couchbase/couchbase.cxx +914 -35
- data/ext/couchbase/diagnostics.hxx +251 -0
- data/ext/couchbase/document_id.hxx +3 -1
- data/ext/couchbase/errors.hxx +10 -1
- data/ext/couchbase/io/http_command.hxx +11 -7
- data/ext/couchbase/io/http_context.hxx +37 -0
- data/ext/couchbase/io/http_message.hxx +9 -0
- data/ext/couchbase/io/http_parser.hxx +2 -0
- data/ext/couchbase/io/http_session.hxx +100 -14
- data/ext/couchbase/io/http_session_manager.hxx +65 -5
- data/ext/couchbase/io/mcbp_command.hxx +16 -7
- data/ext/couchbase/io/mcbp_session.hxx +193 -51
- data/ext/couchbase/io/query_cache.hxx +61 -0
- data/ext/couchbase/io/retry_context.hxx +1 -2
- data/ext/couchbase/io/retry_orchestrator.hxx +16 -0
- data/ext/couchbase/io/retry_strategy.hxx +1 -1
- data/ext/couchbase/io/streams.hxx +61 -10
- data/ext/couchbase/operations.hxx +13 -0
- data/ext/couchbase/operations/analytics_dataset_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataset_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataset_get_all.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataverse_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataverse_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/analytics_link_connect.hxx +1 -1
- data/ext/couchbase/operations/analytics_link_disconnect.hxx +1 -1
- data/ext/couchbase/operations/bucket_create.hxx +11 -5
- data/ext/couchbase/operations/bucket_drop.hxx +1 -1
- data/ext/couchbase/operations/bucket_flush.hxx +1 -1
- data/ext/couchbase/operations/bucket_get.hxx +1 -1
- data/ext/couchbase/operations/bucket_get_all.hxx +1 -1
- data/ext/couchbase/operations/bucket_settings.hxx +43 -4
- data/ext/couchbase/operations/bucket_update.hxx +11 -5
- data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +1 -1
- data/ext/couchbase/operations/collection_create.hxx +3 -1
- data/ext/couchbase/operations/collection_drop.hxx +1 -1
- data/ext/couchbase/operations/collections_manifest_get.hxx +70 -0
- data/ext/couchbase/operations/document_analytics.hxx +6 -1
- data/ext/couchbase/operations/document_get_projected.hxx +1 -1
- data/ext/couchbase/operations/document_query.hxx +85 -8
- data/ext/couchbase/operations/document_search.hxx +14 -4
- data/ext/couchbase/operations/document_view.hxx +1 -1
- data/ext/couchbase/operations/group_drop.hxx +71 -0
- data/ext/couchbase/operations/group_get.hxx +75 -0
- data/ext/couchbase/operations/group_get_all.hxx +70 -0
- data/ext/couchbase/operations/group_upsert.hxx +118 -0
- data/ext/couchbase/operations/query_index_build_deferred.hxx +1 -1
- data/ext/couchbase/operations/query_index_create.hxx +1 -1
- data/ext/couchbase/operations/query_index_drop.hxx +1 -1
- data/ext/couchbase/operations/query_index_get_all.hxx +3 -2
- data/ext/couchbase/operations/rbac.hxx +276 -0
- data/ext/couchbase/operations/role_get_all.hxx +70 -0
- data/ext/couchbase/operations/scope_create.hxx +6 -2
- data/ext/couchbase/operations/scope_drop.hxx +1 -1
- data/ext/couchbase/operations/scope_get_all.hxx +1 -1
- data/ext/couchbase/operations/search_get_stats.hxx +59 -0
- data/ext/couchbase/operations/search_index_analyze_document.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_ingest.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_query.hxx +1 -1
- data/ext/couchbase/operations/search_index_drop.hxx +1 -1
- data/ext/couchbase/operations/search_index_get.hxx +1 -1
- data/ext/couchbase/operations/search_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/search_index_get_documents_count.hxx +24 -16
- data/ext/couchbase/operations/search_index_get_stats.hxx +81 -0
- data/ext/couchbase/operations/search_index_upsert.hxx +1 -1
- data/ext/couchbase/operations/user_drop.hxx +72 -0
- data/ext/couchbase/operations/user_get.hxx +76 -0
- data/ext/couchbase/operations/user_get_all.hxx +71 -0
- data/ext/couchbase/operations/user_upsert.hxx +125 -0
- data/ext/couchbase/operations/view_index_drop.hxx +1 -1
- data/ext/couchbase/operations/view_index_get.hxx +1 -1
- data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/view_index_upsert.hxx +1 -1
- data/ext/couchbase/origin.hxx +4 -4
- data/ext/couchbase/platform/terminate_handler.cc +5 -4
- data/ext/couchbase/protocol/client_opcode.hxx +38 -38
- data/ext/couchbase/protocol/client_response.hxx +2 -2
- data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +6 -3
- data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +3 -1
- data/ext/couchbase/protocol/magic.hxx +6 -6
- data/ext/couchbase/protocol/server_opcode.hxx +2 -2
- data/ext/couchbase/protocol/status.hxx +57 -57
- data/ext/couchbase/service_type.hxx +1 -1
- data/ext/couchbase/utils/connection_string.hxx +12 -3
- data/ext/couchbase/version.hxx +1 -1
- data/ext/extconf.rb +21 -9
- data/ext/test/test_helper.hxx +141 -0
- data/ext/test/test_helper_native.hxx +59 -0
- data/ext/test/test_helper_ruby.hxx +72 -0
- data/ext/test/test_native_diagnostics.cxx +385 -0
- data/ext/test/test_native_trivial_crud.cxx +83 -0
- data/ext/test/test_ruby_trivial_crud.cxx +35 -0
- data/ext/test/test_ruby_trivial_query.cxx +34 -0
- data/ext/third_party/asio/asio/include/asio.hpp +35 -0
- data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
- data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +1 -7
- data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +36 -19
- data/ext/third_party/asio/asio/include/asio/async_result.hpp +1 -8
- data/ext/third_party/asio/asio/include/asio/awaitable.hpp +14 -4
- data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +12 -7
- data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +11 -7
- data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +9 -4
- data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +6 -6
- data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +13 -7
- data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +7 -3
- data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +52 -4
- data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +10 -15
- data/ext/third_party/asio/asio/include/asio/buffer.hpp +6 -4
- data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +380 -9
- data/ext/third_party/asio/asio/include/asio/defer.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/detached.hpp +50 -0
- data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +19 -0
- data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +144 -26
- data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
- data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +106 -0
- data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
- data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +8 -0
- data/ext/third_party/asio/asio/include/asio/detail/config.hpp +360 -37
- data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +17 -2
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +24 -6
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +32 -14
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +32 -14
- data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +133 -34
- data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +42 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +23 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +26 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +370 -45
- data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +208 -74
- data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +39 -1
- data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +12 -15
- data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +37 -0
- data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +2 -1
- data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +661 -274
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +210 -4
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +8 -9
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +5 -4
- data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +15 -6
- data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +32 -50
- data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +3 -0
- data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +6 -0
- data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +13 -0
- data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +38 -13
- data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +12 -6
- data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +2 -3
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +36 -24
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +17 -10
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +38 -16
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +36 -14
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +21 -11
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +43 -17
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +39 -17
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +44 -21
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +41 -18
- data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +12 -6
- data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +3 -1
- data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +10 -8
- data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +11 -9
- data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +8 -0
- data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +7 -5
- data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +46 -0
- data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
- data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +12 -0
- data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +25 -1
- data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +58 -0
- data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +59 -0
- data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +144 -1
- data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +9 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +13 -0
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +5 -1
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +10 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +18 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +15 -11
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +81 -6
- data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +45 -9
- data/ext/third_party/asio/asio/include/asio/dispatch.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
- data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
- data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
- data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
- data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
- data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
- data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
- data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
- data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
- data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
- data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
- data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
- data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
- data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
- data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
- data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
- data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
- data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
- data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
- data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
- data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
- data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
- data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
- data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
- data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
- data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
- data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
- data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
- data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
- data/ext/third_party/asio/asio/include/asio/executor.hpp +7 -1
- data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +126 -9
- data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +28 -5
- data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +29 -3
- data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +14 -0
- data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +44 -8
- data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +44 -8
- data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +145 -7
- data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +124 -22
- data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +52 -8
- data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +147 -12
- data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +142 -12
- data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +15 -101
- data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +5 -0
- data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +13 -4
- data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +144 -57
- data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
- data/ext/third_party/asio/asio/include/asio/impl/post.hpp +147 -12
- data/ext/third_party/asio/asio/include/asio/impl/read.hpp +85 -18
- data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +59 -14
- data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +241 -56
- data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +22 -4
- data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +58 -22
- data/ext/third_party/asio/asio/include/asio/impl/src.hpp +3 -0
- data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +16 -4
- data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +113 -12
- data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +260 -37
- data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +61 -7
- data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +5 -2
- data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +147 -6
- data/ext/third_party/asio/asio/include/asio/impl/write.hpp +75 -14
- data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -11
- data/ext/third_party/asio/asio/include/asio/io_context.hpp +706 -48
- data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +3 -1
- data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
- data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
- data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/post.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
- data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
- data/ext/third_party/asio/asio/include/asio/read_until.hpp +6 -6
- data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
- data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
- data/ext/third_party/asio/asio/include/asio/spawn.hpp +12 -4
- data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +16 -3
- data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +38 -4
- data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +36 -2
- data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +10 -1
- data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +15 -0
- data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
- data/ext/third_party/asio/asio/include/asio/strand.hpp +232 -9
- data/ext/third_party/asio/asio/include/asio/system_context.hpp +12 -3
- data/ext/third_party/asio/asio/include/asio/system_executor.hpp +557 -24
- data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +913 -37
- data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
- data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
- data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
- data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
- data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
- data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +1 -0
- data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +67 -8
- data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +63 -4
- data/ext/third_party/asio/asio/include/asio/version.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +2 -2
- data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +4 -2
- data/ext/third_party/gsl/CMakeLists.txt +13 -5
- data/ext/third_party/gsl/include/gsl/gsl_assert +1 -1
- data/ext/third_party/gsl/include/gsl/gsl_byte +3 -3
- data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
- data/ext/third_party/gsl/include/gsl/gsl_util +8 -50
- data/ext/third_party/gsl/include/gsl/multi_span +0 -10
- data/ext/third_party/gsl/include/gsl/pointers +14 -28
- data/ext/third_party/gsl/include/gsl/span +98 -46
- data/ext/third_party/gsl/include/gsl/string_span +37 -47
- data/ext/third_party/http_parser/http_parser.c +17 -10
- data/ext/third_party/http_parser/http_parser.h +4 -2
- data/ext/third_party/json/include/tao/json/basic_value.hpp +3 -2
- data/ext/third_party/json/include/tao/json/binary.hpp +4 -4
- data/ext/third_party/json/include/tao/json/binary_view.hpp +2 -2
- data/ext/third_party/json/include/tao/json/binding.hpp +2 -2
- data/ext/third_party/json/include/tao/json/binding/factory.hpp +8 -7
- data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +2 -1
- data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +6 -5
- data/ext/third_party/json/include/tao/json/binding/versions.hpp +3 -1
- data/ext/third_party/json/include/tao/json/cbor.hpp +1 -0
- data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +3 -3
- data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +2 -1
- data/ext/third_party/json/include/tao/json/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +13 -6
- data/ext/third_party/json/include/tao/json/contrib/position.hpp +15 -15
- data/ext/third_party/json/include/tao/json/contrib/reference.hpp +5 -7
- data/ext/third_party/json/include/tao/json/contrib/schema.hpp +58 -35
- data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +12 -4
- data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +12 -4
- data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +1 -1
- data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/compare.hpp +2 -12
- data/ext/third_party/json/include/tao/json/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/events/from_string.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/tee.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/to_stream.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/transformer.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +6 -0
- data/ext/third_party/json/include/tao/json/external/pegtl.hpp +4 -13
- data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +5 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +6 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +6 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +52 -52
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +37 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +20 -22
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +6 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +6 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +2 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +11 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +116 -131
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_gcc.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_win.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint8.hpp +9 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint8.hpp +9 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf16.hpp +10 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf32.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/read_uint.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +80 -201
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +11 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +45 -36
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +33 -50
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +43 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint16.hpp → contrib/uint16.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint32.hpp → contrib/uint32.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint64.hpp → contrib/uint64.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint8.hpp → contrib/uint8.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +14 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/{utf16.hpp → contrib/utf16.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{utf32.hpp → contrib/utf32.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +2 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal/demangle.hpp → demangle.hpp} +12 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +7 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +14 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +17 -15
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +8 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +17 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/{always_false.hpp → dependent_false.hpp} +3 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/{skip_control.hpp → enable_control.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +61 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +27 -33
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +29 -26
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +3 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +3 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +4 -20
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +8 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +2 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +7 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +11 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +7 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +4 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +5 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +5 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +16 -24
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +17 -15
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +23 -12
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +12 -13
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +18 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +8 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +22 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +28 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +12 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +26 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +23 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +24 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +10 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +18 -33
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +24 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +13 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +21 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +11 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +18 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +2 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +125 -29
- data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +32 -48
- data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +25 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +6 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +80 -35
- data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +18 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +18 -38
- data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +6 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
- data/ext/third_party/json/include/tao/json/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/internal/action.hpp +3 -3
- data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
- data/ext/third_party/json/include/tao/json/internal/errors.hpp +17 -17
- data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -2
- data/ext/third_party/json/include/tao/json/internal/grammar.hpp +17 -17
- data/ext/third_party/json/include/tao/json/internal/pair.hpp +1 -1
- data/ext/third_party/json/include/tao/json/internal/sha256.hpp +8 -8
- data/ext/third_party/json/include/tao/json/internal/single.hpp +1 -1
- data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +12 -29
- data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +6 -6
- data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +43 -43
- data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +36 -36
- data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +10 -11
- data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +1 -3
- data/ext/third_party/json/include/tao/json/message_extension.hpp +2 -2
- data/ext/third_party/json/include/tao/json/msgpack.hpp +1 -0
- data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +2 -1
- data/ext/third_party/json/include/tao/json/operators.hpp +0 -4
- data/ext/third_party/json/include/tao/json/parts_parser.hpp +3 -7
- data/ext/third_party/json/include/tao/json/self_contained.hpp +6 -18
- data/ext/third_party/json/include/tao/json/span.hpp +94 -166
- data/ext/third_party/json/include/tao/json/ubjson.hpp +1 -0
- data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +3 -3
- data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +5 -3
- data/ext/third_party/json/include/tao/json/utf8.hpp +1 -1
- data/ext/third_party/snappy/snappy.cc +6 -2
- data/ext/third_party/spdlog/CMakeLists.txt +24 -57
- data/ext/third_party/spdlog/cmake/version.rc.in +1 -1
- data/ext/third_party/spdlog/include/spdlog/async.h +3 -3
- data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +3 -4
- data/ext/third_party/spdlog/include/spdlog/cfg/env.h +6 -4
- data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +22 -6
- data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +3 -2
- data/ext/third_party/spdlog/include/spdlog/common.h +1 -2
- data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +9 -1
- data/ext/third_party/spdlog/include/spdlog/details/os.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +21 -7
- data/ext/third_party/spdlog/include/spdlog/details/registry.h +6 -3
- data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +8 -7
- data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +2 -2
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +66 -62
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +35 -37
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +173 -103
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +538 -445
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +114 -64
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +1152 -1071
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +16 -16
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +37 -13
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +93 -63
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +35 -36
- data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
- data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +2 -0
- data/ext/third_party/spdlog/include/spdlog/logger-inl.h +5 -1
- data/ext/third_party/spdlog/include/spdlog/logger.h +50 -76
- data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +23 -8
- data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +3 -3
- data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +5 -5
- data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +6 -4
- data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +32 -3
- data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +7 -0
- data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +4 -14
- data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +11 -1
- data/ext/third_party/spdlog/include/spdlog/spdlog.h +23 -68
- data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
- data/ext/third_party/spdlog/include/spdlog/version.h +2 -2
- data/ext/third_party/spdlog/src/fmt.cpp +21 -147
- data/lib/couchbase/cluster.rb +111 -1
- data/lib/couchbase/collection_options.rb +18 -1
- data/lib/couchbase/errors.rb +3 -0
- data/lib/couchbase/libcouchbase.bundle +0 -0
- data/lib/couchbase/management/bucket_manager.rb +36 -3
- data/lib/couchbase/management/search_index_manager.rb +42 -1
- data/lib/couchbase/management/user_manager.rb +155 -48
- data/lib/couchbase/query_options.rb +7 -0
- data/lib/couchbase/scope.rb +1 -0
- data/lib/couchbase/search_options.rb +69 -1
- data/lib/couchbase/version.rb +1 -1
- metadata +171 -267
- data/.rubocop.yml +0 -227
- data/.rubocop_todo.yml +0 -47
- data/.yardopts +0 -1
- data/CONTRIBUTING.md +0 -110
- data/Gemfile +0 -37
- data/Rakefile +0 -51
- data/couchbase.gemspec +0 -79
- data/examples/analytics.rb +0 -236
- data/examples/auth.rb +0 -33
- data/examples/crud.rb +0 -34
- data/examples/managing_analytics_indexes.rb +0 -86
- data/examples/managing_buckets.rb +0 -61
- data/examples/managing_collections.rb +0 -71
- data/examples/managing_query_indexes.rb +0 -83
- data/examples/managing_search_indexes.rb +0 -77
- data/examples/managing_view_indexes.rb +0 -68
- data/examples/query.rb +0 -32
- data/examples/query_with_consistency.rb +0 -86
- data/examples/search.rb +0 -202
- data/examples/search_with_consistency.rb +0 -97
- data/examples/subdocument.rb +0 -63
- data/examples/view.rb +0 -59
- data/ext/.clang-format +0 -15
- data/ext/.clang-tidy +0 -22
- data/ext/.cmake-format.yaml +0 -8
- data/ext/.gitignore +0 -2
- data/ext/.idea/.name +0 -1
- data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
- data/ext/.idea/ext.iml +0 -2
- data/ext/.idea/misc.xml +0 -16
- data/ext/.idea/modules.xml +0 -8
- data/ext/.idea/vcs.xml +0 -12
- data/ext/test/main.cxx +0 -184
- data/ext/third_party/asio/.appveyor.yml +0 -107
- data/ext/third_party/asio/.cirrus.yml +0 -16
- data/ext/third_party/asio/.gitignore +0 -3
- data/ext/third_party/asio/.travis.yml +0 -323
- data/ext/third_party/asio/asio/.gitignore +0 -23
- data/ext/third_party/asio/asio/COPYING +0 -4
- data/ext/third_party/asio/asio/INSTALL +0 -5
- data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
- data/ext/third_party/asio/asio/Makefile.am +0 -19
- data/ext/third_party/asio/asio/README +0 -4
- data/ext/third_party/asio/asio/asio.manifest +0 -4865
- data/ext/third_party/asio/asio/autogen.sh +0 -55
- data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
- data/ext/third_party/asio/asio/boostify.pl +0 -603
- data/ext/third_party/asio/asio/configure.ac +0 -182
- data/ext/third_party/asio/asio/include/.gitignore +0 -2
- data/ext/third_party/asio/asio/include/Makefile.am +0 -484
- data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
- data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
- data/ext/third_party/asio/asio/release.pl +0 -440
- data/ext/third_party/asio/asio/src/.gitignore +0 -11
- data/ext/third_party/asio/asio/src/Makefile.am +0 -23
- data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
- data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
- data/ext/third_party/asio/asio/src/asio.cpp +0 -11
- data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
- data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
- data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
- data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
- data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
- data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
- data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
- data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
- data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
- data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
- data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
- data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
- data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
- data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
- data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
- data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
- data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
- data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
- data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
- data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
- data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
- data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
- data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
- data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
- data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
- data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
- data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
- data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
- data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
- data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
- data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
- data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
- data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
- data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
- data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
- data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
- data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
- data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
- data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
- data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
- data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
- data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
- data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
- data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
- data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
- data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
- data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
- data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
- data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
- data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
- data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
- data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
- data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
- data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
- data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
- data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
- data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
- data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
- data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
- data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
- data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
- data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
- data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
- data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
- data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
- data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
- data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
- data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
- data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
- data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
- data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
- data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
- data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
- data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
- data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
- data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
- data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
- data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
- data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
- data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
- data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
- data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
- data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
- data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
- data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
- data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
- data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
- data/ext/third_party/asio/asio/tsify.pl +0 -574
- data/ext/third_party/gsl/.clang-format +0 -34
- data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
- data/ext/third_party/gsl/.gitignore +0 -16
- data/ext/third_party/gsl/.travis.yml +0 -551
- data/ext/third_party/gsl/CMakeSettings.json +0 -18
- data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
- data/ext/third_party/gsl/GSL.natvis +0 -98
- data/ext/third_party/gsl/README.md +0 -124
- data/ext/third_party/gsl/appveyor.yml +0 -128
- data/ext/third_party/http_parser/.gitignore +0 -30
- data/ext/third_party/http_parser/.mailmap +0 -8
- data/ext/third_party/http_parser/.travis.yml +0 -13
- data/ext/third_party/http_parser/AUTHORS +0 -68
- data/ext/third_party/http_parser/Makefile +0 -160
- data/ext/third_party/http_parser/README.md +0 -246
- data/ext/third_party/http_parser/bench.c +0 -128
- data/ext/third_party/http_parser/http_parser.gyp +0 -111
- data/ext/third_party/http_parser/test.c +0 -4600
- data/ext/third_party/json/.appveyor.yml +0 -44
- data/ext/third_party/json/.clang-format +0 -84
- data/ext/third_party/json/.conan/build.py +0 -80
- data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
- data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
- data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
- data/ext/third_party/json/.gitignore +0 -3
- data/ext/third_party/json/.travis.yml +0 -173
- data/ext/third_party/json/Makefile +0 -77
- data/ext/third_party/json/README.md +0 -149
- data/ext/third_party/json/conanfile.py +0 -28
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
- data/ext/third_party/snappy/.appveyor.yml +0 -36
- data/ext/third_party/snappy/.gitignore +0 -8
- data/ext/third_party/snappy/.travis.yml +0 -98
- data/ext/third_party/snappy/AUTHORS +0 -1
- data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
- data/ext/third_party/snappy/NEWS +0 -188
- data/ext/third_party/snappy/README.md +0 -148
- data/ext/third_party/snappy/docs/README.md +0 -72
- data/ext/third_party/snappy/format_description.txt +0 -110
- data/ext/third_party/snappy/framing_format.txt +0 -135
- data/ext/third_party/snappy/snappy-test.cc +0 -613
- data/ext/third_party/snappy/snappy-test.h +0 -526
- data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
- data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
- data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
- data/ext/third_party/spdlog/.clang-format +0 -108
- data/ext/third_party/spdlog/.clang-tidy +0 -54
- data/ext/third_party/spdlog/.gitattributes +0 -1
- data/ext/third_party/spdlog/.gitignore +0 -83
- data/ext/third_party/spdlog/.travis.yml +0 -112
- data/ext/third_party/spdlog/INSTALL +0 -24
- data/ext/third_party/spdlog/README.md +0 -423
- data/ext/third_party/spdlog/appveyor.yml +0 -51
- data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
@@ -198,7 +198,7 @@ struct rgb {
|
|
198
198
|
uint8_t b;
|
199
199
|
};
|
200
200
|
|
201
|
-
namespace
|
201
|
+
namespace detail {
|
202
202
|
|
203
203
|
// color is a struct of either a rgb color or a terminal color.
|
204
204
|
struct color_type {
|
@@ -221,7 +221,7 @@ struct color_type {
|
|
221
221
|
uint32_t rgb_color;
|
222
222
|
} value;
|
223
223
|
};
|
224
|
-
} // namespace
|
224
|
+
} // namespace detail
|
225
225
|
|
226
226
|
// Experimental text formatting support.
|
227
227
|
class text_style {
|
@@ -298,11 +298,11 @@ class text_style {
|
|
298
298
|
FMT_CONSTEXPR bool has_emphasis() const FMT_NOEXCEPT {
|
299
299
|
return static_cast<uint8_t>(ems) != 0;
|
300
300
|
}
|
301
|
-
FMT_CONSTEXPR
|
301
|
+
FMT_CONSTEXPR detail::color_type get_foreground() const FMT_NOEXCEPT {
|
302
302
|
FMT_ASSERT(has_foreground(), "no foreground specified for this style");
|
303
303
|
return foreground_color;
|
304
304
|
}
|
305
|
-
FMT_CONSTEXPR
|
305
|
+
FMT_CONSTEXPR detail::color_type get_background() const FMT_NOEXCEPT {
|
306
306
|
FMT_ASSERT(has_background(), "no background specified for this style");
|
307
307
|
return background_color;
|
308
308
|
}
|
@@ -313,7 +313,7 @@ class text_style {
|
|
313
313
|
|
314
314
|
private:
|
315
315
|
FMT_CONSTEXPR text_style(bool is_foreground,
|
316
|
-
|
316
|
+
detail::color_type text_color) FMT_NOEXCEPT
|
317
317
|
: set_foreground_color(),
|
318
318
|
set_background_color(),
|
319
319
|
ems() {
|
@@ -326,23 +326,23 @@ class text_style {
|
|
326
326
|
}
|
327
327
|
}
|
328
328
|
|
329
|
-
friend FMT_CONSTEXPR_DECL text_style fg(
|
329
|
+
friend FMT_CONSTEXPR_DECL text_style fg(detail::color_type foreground)
|
330
330
|
FMT_NOEXCEPT;
|
331
|
-
friend FMT_CONSTEXPR_DECL text_style bg(
|
331
|
+
friend FMT_CONSTEXPR_DECL text_style bg(detail::color_type background)
|
332
332
|
FMT_NOEXCEPT;
|
333
333
|
|
334
|
-
|
335
|
-
|
334
|
+
detail::color_type foreground_color;
|
335
|
+
detail::color_type background_color;
|
336
336
|
bool set_foreground_color;
|
337
337
|
bool set_background_color;
|
338
338
|
emphasis ems;
|
339
339
|
};
|
340
340
|
|
341
|
-
FMT_CONSTEXPR text_style fg(
|
341
|
+
FMT_CONSTEXPR text_style fg(detail::color_type foreground) FMT_NOEXCEPT {
|
342
342
|
return text_style(/*is_foreground=*/true, foreground);
|
343
343
|
}
|
344
344
|
|
345
|
-
FMT_CONSTEXPR text_style bg(
|
345
|
+
FMT_CONSTEXPR text_style bg(detail::color_type background) FMT_NOEXCEPT {
|
346
346
|
return text_style(/*is_foreground=*/false, background);
|
347
347
|
}
|
348
348
|
|
@@ -350,21 +350,21 @@ FMT_CONSTEXPR text_style operator|(emphasis lhs, emphasis rhs) FMT_NOEXCEPT {
|
|
350
350
|
return text_style(lhs) | rhs;
|
351
351
|
}
|
352
352
|
|
353
|
-
namespace
|
353
|
+
namespace detail {
|
354
354
|
|
355
355
|
template <typename Char> struct ansi_color_escape {
|
356
|
-
FMT_CONSTEXPR ansi_color_escape(
|
356
|
+
FMT_CONSTEXPR ansi_color_escape(detail::color_type text_color,
|
357
357
|
const char* esc) FMT_NOEXCEPT {
|
358
358
|
// If we have a terminal color, we need to output another escape code
|
359
359
|
// sequence.
|
360
360
|
if (!text_color.is_rgb) {
|
361
|
-
bool is_background = esc ==
|
361
|
+
bool is_background = esc == detail::data::background_color;
|
362
362
|
uint32_t value = text_color.value.term_color;
|
363
363
|
// Background ASCII codes are the same as the foreground ones but with
|
364
364
|
// 10 more.
|
365
365
|
if (is_background) value += 10u;
|
366
366
|
|
367
|
-
|
367
|
+
size_t index = 0;
|
368
368
|
buffer[index++] = static_cast<Char>('\x1b');
|
369
369
|
buffer[index++] = static_cast<Char>('[');
|
370
370
|
|
@@ -398,7 +398,7 @@ template <typename Char> struct ansi_color_escape {
|
|
398
398
|
if (em_bits & static_cast<uint8_t>(emphasis::strikethrough))
|
399
399
|
em_codes[3] = 9;
|
400
400
|
|
401
|
-
|
401
|
+
size_t index = 0;
|
402
402
|
for (int i = 0; i < 4; ++i) {
|
403
403
|
if (!em_codes[i]) continue;
|
404
404
|
buffer[index++] = static_cast<Char>('\x1b');
|
@@ -429,14 +429,14 @@ template <typename Char> struct ansi_color_escape {
|
|
429
429
|
|
430
430
|
template <typename Char>
|
431
431
|
FMT_CONSTEXPR ansi_color_escape<Char> make_foreground_color(
|
432
|
-
|
433
|
-
return ansi_color_escape<Char>(foreground,
|
432
|
+
detail::color_type foreground) FMT_NOEXCEPT {
|
433
|
+
return ansi_color_escape<Char>(foreground, detail::data::foreground_color);
|
434
434
|
}
|
435
435
|
|
436
436
|
template <typename Char>
|
437
437
|
FMT_CONSTEXPR ansi_color_escape<Char> make_background_color(
|
438
|
-
|
439
|
-
return ansi_color_escape<Char>(background,
|
438
|
+
detail::color_type background) FMT_NOEXCEPT {
|
439
|
+
return ansi_color_escape<Char>(background, detail::data::background_color);
|
440
440
|
}
|
441
441
|
|
442
442
|
template <typename Char>
|
@@ -455,11 +455,11 @@ inline void fputs<wchar_t>(const wchar_t* chars, FILE* stream) FMT_NOEXCEPT {
|
|
455
455
|
}
|
456
456
|
|
457
457
|
template <typename Char> inline void reset_color(FILE* stream) FMT_NOEXCEPT {
|
458
|
-
fputs(
|
458
|
+
fputs(detail::data::reset_color, stream);
|
459
459
|
}
|
460
460
|
|
461
461
|
template <> inline void reset_color<wchar_t>(FILE* stream) FMT_NOEXCEPT {
|
462
|
-
fputs(
|
462
|
+
fputs(detail::data::wreset_color, stream);
|
463
463
|
}
|
464
464
|
|
465
465
|
template <typename Char>
|
@@ -476,33 +476,31 @@ void vformat_to(basic_memory_buffer<Char>& buf, const text_style& ts,
|
|
476
476
|
bool has_style = false;
|
477
477
|
if (ts.has_emphasis()) {
|
478
478
|
has_style = true;
|
479
|
-
auto emphasis =
|
479
|
+
auto emphasis = detail::make_emphasis<Char>(ts.get_emphasis());
|
480
480
|
buf.append(emphasis.begin(), emphasis.end());
|
481
481
|
}
|
482
482
|
if (ts.has_foreground()) {
|
483
483
|
has_style = true;
|
484
|
-
auto foreground =
|
485
|
-
internal::make_foreground_color<Char>(ts.get_foreground());
|
484
|
+
auto foreground = detail::make_foreground_color<Char>(ts.get_foreground());
|
486
485
|
buf.append(foreground.begin(), foreground.end());
|
487
486
|
}
|
488
487
|
if (ts.has_background()) {
|
489
488
|
has_style = true;
|
490
|
-
auto background =
|
491
|
-
internal::make_background_color<Char>(ts.get_background());
|
489
|
+
auto background = detail::make_background_color<Char>(ts.get_background());
|
492
490
|
buf.append(background.begin(), background.end());
|
493
491
|
}
|
494
|
-
|
495
|
-
if (has_style)
|
492
|
+
detail::vformat_to(buf, format_str, args);
|
493
|
+
if (has_style) detail::reset_color<Char>(buf);
|
496
494
|
}
|
497
|
-
} // namespace
|
495
|
+
} // namespace detail
|
498
496
|
|
499
497
|
template <typename S, typename Char = char_t<S>>
|
500
498
|
void vprint(std::FILE* f, const text_style& ts, const S& format,
|
501
499
|
basic_format_args<buffer_context<Char>> args) {
|
502
500
|
basic_memory_buffer<Char> buf;
|
503
|
-
|
501
|
+
detail::vformat_to(buf, ts, to_string_view(format), args);
|
504
502
|
buf.push_back(Char(0));
|
505
|
-
|
503
|
+
detail::fputs(buf.data(), f);
|
506
504
|
}
|
507
505
|
|
508
506
|
/**
|
@@ -513,10 +511,10 @@ void vprint(std::FILE* f, const text_style& ts, const S& format,
|
|
513
511
|
"Elapsed time: {0:.2f} seconds", 1.23);
|
514
512
|
*/
|
515
513
|
template <typename S, typename... Args,
|
516
|
-
FMT_ENABLE_IF(
|
514
|
+
FMT_ENABLE_IF(detail::is_string<S>::value)>
|
517
515
|
void print(std::FILE* f, const text_style& ts, const S& format_str,
|
518
516
|
const Args&... args) {
|
519
|
-
|
517
|
+
detail::check_format_string<Args...>(format_str);
|
520
518
|
using context = buffer_context<char_t<S>>;
|
521
519
|
format_arg_store<context, Args...> as{args...};
|
522
520
|
vprint(f, ts, format_str, basic_format_args<context>(as));
|
@@ -530,7 +528,7 @@ void print(std::FILE* f, const text_style& ts, const S& format_str,
|
|
530
528
|
"Elapsed time: {0:.2f} seconds", 1.23);
|
531
529
|
*/
|
532
530
|
template <typename S, typename... Args,
|
533
|
-
FMT_ENABLE_IF(
|
531
|
+
FMT_ENABLE_IF(detail::is_string<S>::value)>
|
534
532
|
void print(const text_style& ts, const S& format_str, const Args&... args) {
|
535
533
|
return print(stdout, ts, format_str, args...);
|
536
534
|
}
|
@@ -540,7 +538,7 @@ inline std::basic_string<Char> vformat(
|
|
540
538
|
const text_style& ts, const S& format_str,
|
541
539
|
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
542
540
|
basic_memory_buffer<Char> buf;
|
543
|
-
|
541
|
+
detail::vformat_to(buf, ts, to_string_view(format_str), args);
|
544
542
|
return fmt::to_string(buf);
|
545
543
|
}
|
546
544
|
|
@@ -560,7 +558,7 @@ template <typename S, typename... Args, typename Char = char_t<S>>
|
|
560
558
|
inline std::basic_string<Char> format(const text_style& ts, const S& format_str,
|
561
559
|
const Args&... args) {
|
562
560
|
return vformat(ts, to_string_view(format_str),
|
563
|
-
|
561
|
+
detail::make_args_checked<Args...>(format_str, args...));
|
564
562
|
}
|
565
563
|
|
566
564
|
FMT_END_NAMESPACE
|
@@ -13,7 +13,33 @@
|
|
13
13
|
#include "format.h"
|
14
14
|
|
15
15
|
FMT_BEGIN_NAMESPACE
|
16
|
-
namespace
|
16
|
+
namespace detail {
|
17
|
+
|
18
|
+
// A compile-time string which is compiled into fast formatting code.
|
19
|
+
class compiled_string {};
|
20
|
+
|
21
|
+
template <typename S>
|
22
|
+
struct is_compiled_string : std::is_base_of<compiled_string, S> {};
|
23
|
+
|
24
|
+
/**
|
25
|
+
\rst
|
26
|
+
Converts a string literal *s* into a format string that will be parsed at
|
27
|
+
compile time and converted into efficient formatting code. Requires C++17
|
28
|
+
``constexpr if`` compiler support.
|
29
|
+
|
30
|
+
**Example**::
|
31
|
+
|
32
|
+
// Converts 42 into std::string using the most efficient method and no
|
33
|
+
// runtime format string processing.
|
34
|
+
std::string s = fmt::format(FMT_COMPILE("{}"), 42);
|
35
|
+
\endrst
|
36
|
+
*/
|
37
|
+
#define FMT_COMPILE(s) FMT_STRING_IMPL(s, fmt::detail::compiled_string)
|
38
|
+
|
39
|
+
template <typename T, typename... Tail>
|
40
|
+
const T& first(const T& value, const Tail&...) {
|
41
|
+
return value;
|
42
|
+
}
|
17
43
|
|
18
44
|
// Part of a compiled format string. It can be either literal text or a
|
19
45
|
// replacement field.
|
@@ -62,13 +88,15 @@ template <typename Char> struct part_counter {
|
|
62
88
|
if (begin != end) ++num_parts;
|
63
89
|
}
|
64
90
|
|
65
|
-
FMT_CONSTEXPR
|
66
|
-
FMT_CONSTEXPR
|
67
|
-
FMT_CONSTEXPR
|
91
|
+
FMT_CONSTEXPR int on_arg_id() { return ++num_parts, 0; }
|
92
|
+
FMT_CONSTEXPR int on_arg_id(int) { return ++num_parts, 0; }
|
93
|
+
FMT_CONSTEXPR int on_arg_id(basic_string_view<Char>) {
|
94
|
+
return ++num_parts, 0;
|
95
|
+
}
|
68
96
|
|
69
|
-
FMT_CONSTEXPR void on_replacement_field(const Char*) {}
|
97
|
+
FMT_CONSTEXPR void on_replacement_field(int, const Char*) {}
|
70
98
|
|
71
|
-
FMT_CONSTEXPR const Char* on_format_specs(const Char* begin,
|
99
|
+
FMT_CONSTEXPR const Char* on_format_specs(int, const Char* begin,
|
72
100
|
const Char* end) {
|
73
101
|
// Find the matching brace.
|
74
102
|
unsigned brace_counter = 0;
|
@@ -116,25 +144,28 @@ class format_string_compiler : public error_handler {
|
|
116
144
|
handler_(part::make_text({begin, to_unsigned(end - begin)}));
|
117
145
|
}
|
118
146
|
|
119
|
-
FMT_CONSTEXPR
|
147
|
+
FMT_CONSTEXPR int on_arg_id() {
|
120
148
|
part_ = part::make_arg_index(parse_context_.next_arg_id());
|
149
|
+
return 0;
|
121
150
|
}
|
122
151
|
|
123
|
-
FMT_CONSTEXPR
|
152
|
+
FMT_CONSTEXPR int on_arg_id(int id) {
|
124
153
|
parse_context_.check_arg_id(id);
|
125
154
|
part_ = part::make_arg_index(id);
|
155
|
+
return 0;
|
126
156
|
}
|
127
157
|
|
128
|
-
FMT_CONSTEXPR
|
158
|
+
FMT_CONSTEXPR int on_arg_id(basic_string_view<Char> id) {
|
129
159
|
part_ = part::make_arg_name(id);
|
160
|
+
return 0;
|
130
161
|
}
|
131
162
|
|
132
|
-
FMT_CONSTEXPR void on_replacement_field(const Char* ptr) {
|
163
|
+
FMT_CONSTEXPR void on_replacement_field(int, const Char* ptr) {
|
133
164
|
part_.arg_id_end = ptr;
|
134
165
|
handler_(part_);
|
135
166
|
}
|
136
167
|
|
137
|
-
FMT_CONSTEXPR const Char* on_format_specs(const Char* begin,
|
168
|
+
FMT_CONSTEXPR const Char* on_format_specs(int, const Char* begin,
|
138
169
|
const Char* end) {
|
139
170
|
auto repl = typename part::replacement();
|
140
171
|
dynamic_specs_handler<basic_format_parse_context<Char>> handler(
|
@@ -160,23 +191,24 @@ FMT_CONSTEXPR void compile_format_string(basic_string_view<Char> format_str,
|
|
160
191
|
format_string_compiler<Char, PartHandler>(format_str, handler));
|
161
192
|
}
|
162
193
|
|
163
|
-
template <typename
|
194
|
+
template <typename OutputIt, typename Context, typename Id>
|
164
195
|
void format_arg(
|
165
|
-
basic_format_parse_context<typename
|
196
|
+
basic_format_parse_context<typename Context::char_type>& parse_ctx,
|
166
197
|
Context& ctx, Id arg_id) {
|
167
|
-
ctx.advance_to(
|
168
|
-
|
198
|
+
ctx.advance_to(visit_format_arg(
|
199
|
+
arg_formatter<OutputIt, typename Context::char_type>(ctx, &parse_ctx),
|
200
|
+
ctx.arg(arg_id)));
|
169
201
|
}
|
170
202
|
|
171
203
|
// vformat_to is defined in a subnamespace to prevent ADL.
|
172
204
|
namespace cf {
|
173
|
-
template <typename Context, typename
|
174
|
-
auto vformat_to(
|
175
|
-
|
205
|
+
template <typename Context, typename OutputIt, typename CompiledFormat>
|
206
|
+
auto vformat_to(OutputIt out, CompiledFormat& cf,
|
207
|
+
basic_format_args<Context> args) -> typename Context::iterator {
|
176
208
|
using char_type = typename Context::char_type;
|
177
209
|
basic_format_parse_context<char_type> parse_ctx(
|
178
210
|
to_string_view(cf.format_str_));
|
179
|
-
Context ctx(out
|
211
|
+
Context ctx(out, args);
|
180
212
|
|
181
213
|
const auto& parts = cf.parts();
|
182
214
|
for (auto part_it = std::begin(parts); part_it != std::end(parts);
|
@@ -197,12 +229,12 @@ auto vformat_to(Range out, CompiledFormat& cf, basic_format_args<Context> args)
|
|
197
229
|
|
198
230
|
case format_part_t::kind::arg_index:
|
199
231
|
advance_to(parse_ctx, part.arg_id_end);
|
200
|
-
|
232
|
+
detail::format_arg<OutputIt>(parse_ctx, ctx, value.arg_index);
|
201
233
|
break;
|
202
234
|
|
203
235
|
case format_part_t::kind::arg_name:
|
204
236
|
advance_to(parse_ctx, part.arg_id_end);
|
205
|
-
|
237
|
+
detail::format_arg<OutputIt>(parse_ctx, ctx, value.str);
|
206
238
|
break;
|
207
239
|
|
208
240
|
case format_part_t::kind::replacement: {
|
@@ -226,7 +258,9 @@ auto vformat_to(Range out, CompiledFormat& cf, basic_format_args<Context> args)
|
|
226
258
|
|
227
259
|
advance_to(parse_ctx, part.arg_id_end);
|
228
260
|
ctx.advance_to(
|
229
|
-
visit_format_arg(arg_formatter<
|
261
|
+
visit_format_arg(arg_formatter<OutputIt, typename Context::char_type>(
|
262
|
+
ctx, nullptr, &specs),
|
263
|
+
arg));
|
230
264
|
break;
|
231
265
|
}
|
232
266
|
}
|
@@ -240,7 +274,7 @@ struct basic_compiled_format {};
|
|
240
274
|
template <typename S, typename = void>
|
241
275
|
struct compiled_format_base : basic_compiled_format {
|
242
276
|
using char_type = char_t<S>;
|
243
|
-
using parts_container = std::vector<
|
277
|
+
using parts_container = std::vector<detail::format_part<char_type>>;
|
244
278
|
|
245
279
|
parts_container compiled_parts;
|
246
280
|
|
@@ -305,7 +339,7 @@ struct compiled_format_base<S, enable_if_t<is_compile_string<S>::value>>
|
|
305
339
|
const parts_container& parts() const {
|
306
340
|
static FMT_CONSTEXPR_DECL const auto compiled_parts =
|
307
341
|
compile_to_parts<char_type, num_format_parts>(
|
308
|
-
|
342
|
+
detail::to_string_view(S()));
|
309
343
|
return compiled_parts.data;
|
310
344
|
}
|
311
345
|
};
|
@@ -318,8 +352,8 @@ class compiled_format : private compiled_format_base<S> {
|
|
318
352
|
private:
|
319
353
|
basic_string_view<char_type> format_str_;
|
320
354
|
|
321
|
-
template <typename Context, typename
|
322
|
-
friend auto cf::vformat_to(
|
355
|
+
template <typename Context, typename OutputIt, typename CompiledFormat>
|
356
|
+
friend auto cf::vformat_to(OutputIt out, CompiledFormat& cf,
|
323
357
|
basic_format_args<Context> args) ->
|
324
358
|
typename Context::iterator;
|
325
359
|
|
@@ -359,8 +393,7 @@ template <typename Char> struct text {
|
|
359
393
|
|
360
394
|
template <typename OutputIt, typename... Args>
|
361
395
|
OutputIt format(OutputIt out, const Args&...) const {
|
362
|
-
|
363
|
-
return copy_str<Char>(data.begin(), data.end(), out);
|
396
|
+
return write<Char>(out, data);
|
364
397
|
}
|
365
398
|
};
|
366
399
|
|
@@ -373,33 +406,6 @@ constexpr text<Char> make_text(basic_string_view<Char> s, size_t pos,
|
|
373
406
|
return {{&s[pos], size}};
|
374
407
|
}
|
375
408
|
|
376
|
-
template <typename Char, typename OutputIt, typename T,
|
377
|
-
std::enable_if_t<std::is_integral_v<T>, int> = 0>
|
378
|
-
OutputIt format_default(OutputIt out, T value) {
|
379
|
-
// TODO: reserve
|
380
|
-
format_int fi(value);
|
381
|
-
return std::copy(fi.data(), fi.data() + fi.size(), out);
|
382
|
-
}
|
383
|
-
|
384
|
-
template <typename Char, typename OutputIt>
|
385
|
-
OutputIt format_default(OutputIt out, double value) {
|
386
|
-
writer w(out);
|
387
|
-
w.write(value);
|
388
|
-
return w.out();
|
389
|
-
}
|
390
|
-
|
391
|
-
template <typename Char, typename OutputIt>
|
392
|
-
OutputIt format_default(OutputIt out, Char value) {
|
393
|
-
*out++ = value;
|
394
|
-
return out;
|
395
|
-
}
|
396
|
-
|
397
|
-
template <typename Char, typename OutputIt>
|
398
|
-
OutputIt format_default(OutputIt out, const Char* value) {
|
399
|
-
auto length = std::char_traits<Char>::length(value);
|
400
|
-
return copy_str<Char>(value, value + length, out);
|
401
|
-
}
|
402
|
-
|
403
409
|
// A replacement field that refers to argument N.
|
404
410
|
template <typename Char, typename T, int N> struct field {
|
405
411
|
using char_type = Char;
|
@@ -408,13 +414,30 @@ template <typename Char, typename T, int N> struct field {
|
|
408
414
|
OutputIt format(OutputIt out, const Args&... args) const {
|
409
415
|
// This ensures that the argument type is convertile to `const T&`.
|
410
416
|
const T& arg = get<N>(args...);
|
411
|
-
return
|
417
|
+
return write<Char>(out, arg);
|
412
418
|
}
|
413
419
|
};
|
414
420
|
|
415
421
|
template <typename Char, typename T, int N>
|
416
422
|
struct is_compiled_format<field<Char, T, N>> : std::true_type {};
|
417
423
|
|
424
|
+
// A replacement field that refers to argument N and has format specifiers.
|
425
|
+
template <typename Char, typename T, int N> struct spec_field {
|
426
|
+
using char_type = Char;
|
427
|
+
mutable formatter<T, Char> fmt;
|
428
|
+
|
429
|
+
template <typename OutputIt, typename... Args>
|
430
|
+
OutputIt format(OutputIt out, const Args&... args) const {
|
431
|
+
// This ensures that the argument type is convertile to `const T&`.
|
432
|
+
const T& arg = get<N>(args...);
|
433
|
+
basic_format_context<OutputIt, Char> ctx(out, {});
|
434
|
+
return fmt.format(arg, ctx);
|
435
|
+
}
|
436
|
+
};
|
437
|
+
|
438
|
+
template <typename Char, typename T, int N>
|
439
|
+
struct is_compiled_format<spec_field<Char, T, N>> : std::true_type {};
|
440
|
+
|
418
441
|
template <typename L, typename R> struct concat {
|
419
442
|
L lhs;
|
420
443
|
R rhs;
|
@@ -450,7 +473,8 @@ constexpr auto compile_format_string(S format_str);
|
|
450
473
|
|
451
474
|
template <typename Args, size_t POS, int ID, typename T, typename S>
|
452
475
|
constexpr auto parse_tail(T head, S format_str) {
|
453
|
-
if constexpr (POS !=
|
476
|
+
if constexpr (POS !=
|
477
|
+
basic_string_view<typename S::char_type>(format_str).size()) {
|
454
478
|
constexpr auto tail = compile_format_string<Args, POS, ID>(format_str);
|
455
479
|
if constexpr (std::is_same<remove_cvref_t<decltype(tail)>,
|
456
480
|
unknown_format>())
|
@@ -462,6 +486,21 @@ constexpr auto parse_tail(T head, S format_str) {
|
|
462
486
|
}
|
463
487
|
}
|
464
488
|
|
489
|
+
template <typename T, typename Char> struct parse_specs_result {
|
490
|
+
formatter<T, Char> fmt;
|
491
|
+
size_t end;
|
492
|
+
};
|
493
|
+
|
494
|
+
template <typename T, typename Char>
|
495
|
+
constexpr parse_specs_result<T, Char> parse_specs(basic_string_view<Char> str,
|
496
|
+
size_t pos) {
|
497
|
+
str.remove_prefix(pos);
|
498
|
+
auto ctx = basic_format_parse_context<Char>(str);
|
499
|
+
auto f = formatter<T, Char>();
|
500
|
+
auto end = f.parse(ctx);
|
501
|
+
return {f, pos + (end - str.data()) + 1};
|
502
|
+
}
|
503
|
+
|
465
504
|
// Compiles a non-empty format string and returns the compiled representation
|
466
505
|
// or unknown_format() on unrecognized input.
|
467
506
|
template <typename Args, size_t POS, int ID, typename S>
|
@@ -475,12 +514,13 @@ constexpr auto compile_format_string(S format_str) {
|
|
475
514
|
return parse_tail<Args, POS + 2, ID>(make_text(str, POS, 1), format_str);
|
476
515
|
} else if constexpr (str[POS + 1] == '}') {
|
477
516
|
using type = get_type<ID, Args>;
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
517
|
+
return parse_tail<Args, POS + 2, ID + 1>(field<char_type, type, ID>(),
|
518
|
+
format_str);
|
519
|
+
} else if constexpr (str[POS + 1] == ':') {
|
520
|
+
using type = get_type<ID, Args>;
|
521
|
+
constexpr auto result = parse_specs<type>(str, POS + 2);
|
522
|
+
return parse_tail<Args, result.end, ID + 1>(
|
523
|
+
spec_field<char_type, type, ID>{result.fmt}, format_str);
|
484
524
|
} else {
|
485
525
|
return unknown_format();
|
486
526
|
}
|
@@ -494,100 +534,130 @@ constexpr auto compile_format_string(S format_str) {
|
|
494
534
|
format_str);
|
495
535
|
}
|
496
536
|
}
|
497
|
-
#endif // __cpp_if_constexpr
|
498
|
-
} // namespace internal
|
499
537
|
|
500
|
-
#if FMT_USE_CONSTEXPR
|
501
|
-
# ifdef __cpp_if_constexpr
|
502
538
|
template <typename... Args, typename S,
|
503
|
-
FMT_ENABLE_IF(is_compile_string<S>::value
|
539
|
+
FMT_ENABLE_IF(is_compile_string<S>::value ||
|
540
|
+
detail::is_compiled_string<S>::value)>
|
504
541
|
constexpr auto compile(S format_str) {
|
505
542
|
constexpr basic_string_view<typename S::char_type> str = format_str;
|
506
543
|
if constexpr (str.size() == 0) {
|
507
|
-
return
|
544
|
+
return detail::make_text(str, 0, 0);
|
508
545
|
} else {
|
509
546
|
constexpr auto result =
|
510
|
-
|
547
|
+
detail::compile_format_string<detail::type_list<Args...>, 0, 0>(
|
511
548
|
format_str);
|
512
549
|
if constexpr (std::is_same<remove_cvref_t<decltype(result)>,
|
513
|
-
|
514
|
-
return
|
550
|
+
detail::unknown_format>()) {
|
551
|
+
return detail::compiled_format<S, Args...>(to_string_view(format_str));
|
515
552
|
} else {
|
516
553
|
return result;
|
517
554
|
}
|
518
555
|
}
|
519
556
|
}
|
557
|
+
#else
|
558
|
+
template <typename... Args, typename S,
|
559
|
+
FMT_ENABLE_IF(is_compile_string<S>::value)>
|
560
|
+
constexpr auto compile(S format_str) -> detail::compiled_format<S, Args...> {
|
561
|
+
return detail::compiled_format<S, Args...>(to_string_view(format_str));
|
562
|
+
}
|
563
|
+
#endif // __cpp_if_constexpr
|
564
|
+
|
565
|
+
// Compiles the format string which must be a string literal.
|
566
|
+
template <typename... Args, typename Char, size_t N>
|
567
|
+
auto compile(const Char (&format_str)[N])
|
568
|
+
-> detail::compiled_format<const Char*, Args...> {
|
569
|
+
return detail::compiled_format<const Char*, Args...>(
|
570
|
+
basic_string_view<Char>(format_str, N - 1));
|
571
|
+
}
|
572
|
+
} // namespace detail
|
573
|
+
|
574
|
+
// DEPRECATED! use FMT_COMPILE instead.
|
575
|
+
template <typename... Args>
|
576
|
+
FMT_DEPRECATED auto compile(const Args&... args)
|
577
|
+
-> decltype(detail::compile(args...)) {
|
578
|
+
return detail::compile(args...);
|
579
|
+
}
|
580
|
+
|
581
|
+
#if FMT_USE_CONSTEXPR
|
582
|
+
# ifdef __cpp_if_constexpr
|
520
583
|
|
521
584
|
template <typename CompiledFormat, typename... Args,
|
522
585
|
typename Char = typename CompiledFormat::char_type,
|
523
|
-
FMT_ENABLE_IF(
|
524
|
-
std::basic_string<Char> format(const CompiledFormat& cf,
|
586
|
+
FMT_ENABLE_IF(detail::is_compiled_format<CompiledFormat>::value)>
|
587
|
+
FMT_INLINE std::basic_string<Char> format(const CompiledFormat& cf,
|
588
|
+
const Args&... args) {
|
525
589
|
basic_memory_buffer<Char> buffer;
|
526
|
-
|
590
|
+
detail::buffer<Char>& base = buffer;
|
591
|
+
cf.format(std::back_inserter(base), args...);
|
527
592
|
return to_string(buffer);
|
528
593
|
}
|
529
594
|
|
530
595
|
template <typename OutputIt, typename CompiledFormat, typename... Args,
|
531
|
-
FMT_ENABLE_IF(
|
596
|
+
FMT_ENABLE_IF(detail::is_compiled_format<CompiledFormat>::value)>
|
532
597
|
OutputIt format_to(OutputIt out, const CompiledFormat& cf,
|
533
598
|
const Args&... args) {
|
534
599
|
return cf.format(out, args...);
|
535
600
|
}
|
536
|
-
# else
|
537
|
-
template <typename... Args, typename S,
|
538
|
-
FMT_ENABLE_IF(is_compile_string<S>::value)>
|
539
|
-
constexpr auto compile(S format_str) -> internal::compiled_format<S, Args...> {
|
540
|
-
return internal::compiled_format<S, Args...>(to_string_view(format_str));
|
541
|
-
}
|
542
601
|
# endif // __cpp_if_constexpr
|
543
602
|
#endif // FMT_USE_CONSTEXPR
|
544
603
|
|
545
|
-
// Compiles the format string which must be a string literal.
|
546
|
-
template <typename... Args, typename Char, size_t N>
|
547
|
-
auto compile(const Char (&format_str)[N])
|
548
|
-
-> internal::compiled_format<const Char*, Args...> {
|
549
|
-
return internal::compiled_format<const Char*, Args...>(
|
550
|
-
basic_string_view<Char>(format_str, N - 1));
|
551
|
-
}
|
552
|
-
|
553
604
|
template <typename CompiledFormat, typename... Args,
|
554
605
|
typename Char = typename CompiledFormat::char_type,
|
555
|
-
FMT_ENABLE_IF(std::is_base_of<
|
606
|
+
FMT_ENABLE_IF(std::is_base_of<detail::basic_compiled_format,
|
556
607
|
CompiledFormat>::value)>
|
557
608
|
std::basic_string<Char> format(const CompiledFormat& cf, const Args&... args) {
|
558
609
|
basic_memory_buffer<Char> buffer;
|
559
|
-
using range = buffer_range<Char>;
|
560
610
|
using context = buffer_context<Char>;
|
561
|
-
|
562
|
-
|
611
|
+
detail::buffer<Char>& base = buffer;
|
612
|
+
detail::cf::vformat_to<context>(std::back_inserter(base), cf,
|
613
|
+
make_format_args<context>(args...));
|
563
614
|
return to_string(buffer);
|
564
615
|
}
|
565
616
|
|
617
|
+
template <typename S, typename... Args,
|
618
|
+
FMT_ENABLE_IF(detail::is_compiled_string<S>::value)>
|
619
|
+
FMT_INLINE std::basic_string<typename S::char_type> format(const S&,
|
620
|
+
Args&&... args) {
|
621
|
+
constexpr basic_string_view<typename S::char_type> str = S();
|
622
|
+
if (str.size() == 2 && str[0] == '{' && str[1] == '}')
|
623
|
+
return fmt::to_string(detail::first(args...));
|
624
|
+
constexpr auto compiled = detail::compile<Args...>(S());
|
625
|
+
return format(compiled, std::forward<Args>(args)...);
|
626
|
+
}
|
627
|
+
|
566
628
|
template <typename OutputIt, typename CompiledFormat, typename... Args,
|
567
|
-
FMT_ENABLE_IF(std::is_base_of<
|
629
|
+
FMT_ENABLE_IF(std::is_base_of<detail::basic_compiled_format,
|
568
630
|
CompiledFormat>::value)>
|
569
631
|
OutputIt format_to(OutputIt out, const CompiledFormat& cf,
|
570
632
|
const Args&... args) {
|
571
633
|
using char_type = typename CompiledFormat::char_type;
|
572
|
-
using range = internal::output_range<OutputIt, char_type>;
|
573
634
|
using context = format_context_t<OutputIt, char_type>;
|
574
|
-
return
|
575
|
-
|
635
|
+
return detail::cf::vformat_to<context>(out, cf,
|
636
|
+
make_format_args<context>(args...));
|
576
637
|
}
|
577
638
|
|
578
|
-
template <typename OutputIt, typename
|
579
|
-
FMT_ENABLE_IF(
|
639
|
+
template <typename OutputIt, typename S, typename... Args,
|
640
|
+
FMT_ENABLE_IF(detail::is_compiled_string<S>::value)>
|
641
|
+
OutputIt format_to(OutputIt out, const S&, const Args&... args) {
|
642
|
+
constexpr auto compiled = detail::compile<Args...>(S());
|
643
|
+
return format_to(out, compiled, args...);
|
644
|
+
}
|
645
|
+
|
646
|
+
template <
|
647
|
+
typename OutputIt, typename CompiledFormat, typename... Args,
|
648
|
+
FMT_ENABLE_IF(detail::is_output_iterator<OutputIt>::value&& std::is_base_of<
|
649
|
+
detail::basic_compiled_format, CompiledFormat>::value)>
|
580
650
|
format_to_n_result<OutputIt> format_to_n(OutputIt out, size_t n,
|
581
651
|
const CompiledFormat& cf,
|
582
652
|
const Args&... args) {
|
583
653
|
auto it =
|
584
|
-
format_to(
|
654
|
+
format_to(detail::truncating_iterator<OutputIt>(out, n), cf, args...);
|
585
655
|
return {it.base(), it.count()};
|
586
656
|
}
|
587
657
|
|
588
658
|
template <typename CompiledFormat, typename... Args>
|
589
|
-
|
590
|
-
return format_to(
|
659
|
+
size_t formatted_size(const CompiledFormat& cf, const Args&... args) {
|
660
|
+
return format_to(detail::counting_iterator(), cf, args...).count();
|
591
661
|
}
|
592
662
|
|
593
663
|
FMT_END_NAMESPACE
|