temporalio 0.1.1 → 0.2.0
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/Cargo.lock +4035 -0
- data/Cargo.toml +25 -0
- data/Gemfile +20 -0
- data/LICENSE +16 -15
- data/README.md +455 -195
- data/Rakefile +387 -0
- data/ext/Cargo.toml +25 -0
- data/lib/temporalio/activity/complete_async_error.rb +11 -0
- data/lib/temporalio/activity/context.rb +82 -77
- data/lib/temporalio/activity/definition.rb +77 -0
- data/lib/temporalio/activity/info.rb +42 -46
- data/lib/temporalio/activity.rb +49 -65
- data/lib/temporalio/api/batch/v1/message.rb +31 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
- data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
- data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
- data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
- data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
- data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
- data/lib/temporalio/api/command/v1/message.rb +46 -0
- data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
- data/lib/temporalio/api/common/v1/message.rb +41 -0
- data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
- data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/common.rb +26 -0
- data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
- data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
- data/lib/temporalio/api/enums/v1/query.rb +22 -0
- data/lib/temporalio/api/enums/v1/reset.rb +23 -0
- data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
- data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
- data/lib/temporalio/api/enums/v1/update.rb +22 -0
- data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
- data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
- data/lib/temporalio/api/export/v1/message.rb +24 -0
- data/lib/temporalio/api/failure/v1/message.rb +35 -0
- data/lib/temporalio/api/filter/v1/message.rb +27 -0
- data/lib/temporalio/api/history/v1/message.rb +90 -0
- data/lib/temporalio/api/namespace/v1/message.rb +31 -0
- data/lib/temporalio/api/nexus/v1/message.rb +40 -0
- data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
- data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
- data/lib/temporalio/api/operatorservice.rb +3 -0
- data/lib/temporalio/api/protocol/v1/message.rb +23 -0
- data/lib/temporalio/api/query/v1/message.rb +27 -0
- data/lib/temporalio/api/replication/v1/message.rb +26 -0
- data/lib/temporalio/api/schedule/v1/message.rb +42 -0
- data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
- data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
- data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
- data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
- data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
- data/lib/temporalio/api/update/v1/message.rb +33 -0
- data/lib/temporalio/api/version/v1/message.rb +26 -0
- data/lib/temporalio/api/workflow/v1/message.rb +43 -0
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
- data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
- data/lib/temporalio/api/workflowservice.rb +3 -0
- data/lib/temporalio/api.rb +13 -0
- data/lib/temporalio/cancellation.rb +150 -0
- data/lib/temporalio/client/activity_id_reference.rb +32 -0
- data/lib/temporalio/client/async_activity_handle.rb +110 -0
- data/lib/temporalio/client/connection/cloud_service.rb +648 -0
- data/lib/temporalio/client/connection/operator_service.rb +249 -0
- data/lib/temporalio/client/connection/service.rb +41 -0
- data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
- data/lib/temporalio/client/connection.rb +270 -0
- data/lib/temporalio/client/interceptor.rb +316 -0
- data/lib/temporalio/client/workflow_execution.rb +103 -0
- data/lib/temporalio/client/workflow_execution_count.rb +36 -0
- data/lib/temporalio/client/workflow_execution_status.rb +18 -0
- data/lib/temporalio/client/workflow_handle.rb +380 -177
- data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
- data/lib/temporalio/client/workflow_update_handle.rb +67 -0
- data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
- data/lib/temporalio/client.rb +366 -93
- data/lib/temporalio/common_enums.rb +24 -0
- data/lib/temporalio/converters/data_converter.rb +102 -0
- data/lib/temporalio/converters/failure_converter.rb +200 -0
- data/lib/temporalio/converters/payload_codec.rb +26 -0
- data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
- data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
- data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
- data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
- data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
- data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
- data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
- data/lib/temporalio/converters/payload_converter.rb +73 -0
- data/lib/temporalio/converters.rb +9 -0
- data/lib/temporalio/error/failure.rb +119 -94
- data/lib/temporalio/error.rb +147 -0
- data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
- data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
- data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
- data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
- data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
- data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
- data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
- data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
- data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
- data/lib/temporalio/internal/bridge/api.rb +3 -0
- data/lib/temporalio/internal/bridge/client.rb +90 -0
- data/lib/temporalio/internal/bridge/runtime.rb +53 -0
- data/lib/temporalio/internal/bridge/testing.rb +46 -0
- data/lib/temporalio/internal/bridge/worker.rb +83 -0
- data/lib/temporalio/internal/bridge.rb +36 -0
- data/lib/temporalio/internal/client/implementation.rb +525 -0
- data/lib/temporalio/internal/proto_utils.rb +54 -0
- data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
- data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
- data/lib/temporalio/internal.rb +7 -0
- data/lib/temporalio/retry_policy.rb +39 -80
- data/lib/temporalio/runtime.rb +259 -13
- data/lib/temporalio/scoped_logger.rb +96 -0
- data/lib/temporalio/search_attributes.rb +300 -0
- data/lib/temporalio/testing/activity_environment.rb +132 -0
- data/lib/temporalio/testing/workflow_environment.rb +113 -88
- data/lib/temporalio/testing.rb +4 -169
- data/lib/temporalio/version.rb +3 -1
- data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
- data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
- data/lib/temporalio/worker/activity_executor.rb +55 -0
- data/lib/temporalio/worker/interceptor.rb +88 -0
- data/lib/temporalio/worker/tuner.rb +151 -0
- data/lib/temporalio/worker.rb +385 -163
- data/lib/temporalio/workflow_history.rb +22 -0
- data/lib/temporalio.rb +2 -7
- data/temporalio.gemspec +20 -39
- metadata +131 -712
- data/bridge/Cargo.lock +0 -2997
- data/bridge/Cargo.toml +0 -29
- data/bridge/sdk-core/ARCHITECTURE.md +0 -76
- data/bridge/sdk-core/Cargo.toml +0 -2
- data/bridge/sdk-core/LICENSE.txt +0 -23
- data/bridge/sdk-core/README.md +0 -117
- data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
- data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
- data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
- data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
- data/bridge/sdk-core/client/Cargo.toml +0 -40
- data/bridge/sdk-core/client/LICENSE.txt +0 -23
- data/bridge/sdk-core/client/src/lib.rs +0 -1462
- data/bridge/sdk-core/client/src/metrics.rs +0 -174
- data/bridge/sdk-core/client/src/raw.rs +0 -932
- data/bridge/sdk-core/client/src/retry.rs +0 -763
- data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
- data/bridge/sdk-core/core/Cargo.toml +0 -129
- data/bridge/sdk-core/core/LICENSE.txt +0 -23
- data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
- data/bridge/sdk-core/core/src/abstractions.rs +0 -355
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
- data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
- data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
- data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
- data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
- data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
- data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
- data/bridge/sdk-core/core/src/lib.rs +0 -289
- data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
- data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
- data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
- data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
- data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
- data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
- data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
- data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
- data/bridge/sdk-core/core/src/worker/client.rs +0 -389
- data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
- data/bridge/sdk-core/core-api/Cargo.toml +0 -33
- data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
- data/bridge/sdk-core/core-api/src/errors.rs +0 -62
- data/bridge/sdk-core/core-api/src/lib.rs +0 -113
- data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
- data/bridge/sdk-core/core-api/src/worker.rs +0 -161
- data/bridge/sdk-core/etc/deps.svg +0 -162
- data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
- data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
- data/bridge/sdk-core/etc/prometheus.yaml +0 -6
- data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
- data/bridge/sdk-core/fsm/Cargo.toml +0 -18
- data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/README.md +0 -3
- data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
- data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
- data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
- data/bridge/sdk-core/fsm/src/lib.rs +0 -2
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
- data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
- data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
- data/bridge/sdk-core/integ-with-otel.sh +0 -7
- data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
- data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
- data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
- data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
- data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
- data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
- data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
- data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
- data/bridge/sdk-core/rustfmt.toml +0 -1
- data/bridge/sdk-core/sdk/Cargo.toml +0 -48
- data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
- data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
- data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
- data/bridge/sdk-core/sdk/src/lib.rs +0 -861
- data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
- data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
- data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
- data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
- data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
- data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
- data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
- data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
- data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
- data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
- data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
- data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
- data/bridge/sdk-core/tests/main.rs +0 -103
- data/bridge/sdk-core/tests/runner.rs +0 -132
- data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
- data/bridge/src/connection.rs +0 -202
- data/bridge/src/lib.rs +0 -494
- data/bridge/src/runtime.rs +0 -54
- data/bridge/src/test_server.rs +0 -153
- data/bridge/src/worker.rs +0 -197
- data/ext/Rakefile +0 -9
- data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
- data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
- data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
- data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
- data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
- data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
- data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
- data/lib/temporalio/bridge/connect_options.rb +0 -15
- data/lib/temporalio/bridge/error.rb +0 -8
- data/lib/temporalio/bridge/retry_config.rb +0 -24
- data/lib/temporalio/bridge/tls_options.rb +0 -19
- data/lib/temporalio/bridge.rb +0 -14
- data/lib/temporalio/client/implementation.rb +0 -340
- data/lib/temporalio/connection/retry_config.rb +0 -44
- data/lib/temporalio/connection/service.rb +0 -20
- data/lib/temporalio/connection/test_service.rb +0 -92
- data/lib/temporalio/connection/tls_options.rb +0 -51
- data/lib/temporalio/connection/workflow_service.rb +0 -731
- data/lib/temporalio/connection.rb +0 -86
- data/lib/temporalio/data_converter.rb +0 -191
- data/lib/temporalio/error/workflow_failure.rb +0 -19
- data/lib/temporalio/errors.rb +0 -40
- data/lib/temporalio/failure_converter/base.rb +0 -26
- data/lib/temporalio/failure_converter/basic.rb +0 -319
- data/lib/temporalio/failure_converter.rb +0 -7
- data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
- data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
- data/lib/temporalio/interceptor/chain.rb +0 -28
- data/lib/temporalio/interceptor/client.rb +0 -127
- data/lib/temporalio/interceptor.rb +0 -22
- data/lib/temporalio/payload_codec/base.rb +0 -32
- data/lib/temporalio/payload_converter/base.rb +0 -24
- data/lib/temporalio/payload_converter/bytes.rb +0 -27
- data/lib/temporalio/payload_converter/composite.rb +0 -49
- data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
- data/lib/temporalio/payload_converter/json.rb +0 -26
- data/lib/temporalio/payload_converter/nil.rb +0 -26
- data/lib/temporalio/payload_converter.rb +0 -14
- data/lib/temporalio/retry_state.rb +0 -35
- data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
- data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
- data/lib/temporalio/timeout_type.rb +0 -29
- data/lib/temporalio/worker/activity_runner.rb +0 -114
- data/lib/temporalio/worker/activity_worker.rb +0 -164
- data/lib/temporalio/worker/reactor.rb +0 -46
- data/lib/temporalio/worker/runner.rb +0 -63
- data/lib/temporalio/worker/sync_worker.rb +0 -124
- data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
- data/lib/temporalio/workflow/async.rb +0 -46
- data/lib/temporalio/workflow/execution_info.rb +0 -54
- data/lib/temporalio/workflow/execution_status.rb +0 -36
- data/lib/temporalio/workflow/future.rb +0 -138
- data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
- data/lib/temporalio/workflow/info.rb +0 -76
- data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
- data/lib/thermite_patch.rb +0 -33
- data/sig/async.rbs +0 -17
- data/sig/protobuf.rbs +0 -16
- data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
- data/sig/protos/google/protobuf/any.rbs +0 -157
- data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
- data/sig/protos/google/protobuf/duration.rbs +0 -114
- data/sig/protos/google/protobuf/empty.rbs +0 -36
- data/sig/protos/google/protobuf/timestamp.rbs +0 -145
- data/sig/protos/google/protobuf/wrappers.rbs +0 -358
- data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
- data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
- data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
- data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
- data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
- data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
- data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
- data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
- data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
- data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
- data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
- data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
- data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
- data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
- data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
- data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
- data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
- data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
- data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
- data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
- data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
- data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
- data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
- data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
- data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
- data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
- data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
- data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
- data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
- data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
- data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
- data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
- data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
- data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
- data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
- data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
- data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
- data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
- data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
- data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
- data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
- data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
- data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
- data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
- data/sig/ruby.rbs +0 -12
- data/sig/temporalio/activity/context.rbs +0 -29
- data/sig/temporalio/activity/info.rbs +0 -43
- data/sig/temporalio/activity.rbs +0 -19
- data/sig/temporalio/bridge/connect_options.rbs +0 -19
- data/sig/temporalio/bridge/error.rbs +0 -8
- data/sig/temporalio/bridge/retry_config.rbs +0 -21
- data/sig/temporalio/bridge/tls_options.rbs +0 -17
- data/sig/temporalio/bridge.rbs +0 -71
- data/sig/temporalio/client/implementation.rbs +0 -38
- data/sig/temporalio/client/workflow_handle.rbs +0 -41
- data/sig/temporalio/client.rbs +0 -35
- data/sig/temporalio/connection/retry_config.rbs +0 -37
- data/sig/temporalio/connection/service.rbs +0 -14
- data/sig/temporalio/connection/test_service.rbs +0 -13
- data/sig/temporalio/connection/tls_options.rbs +0 -43
- data/sig/temporalio/connection/workflow_service.rbs +0 -48
- data/sig/temporalio/connection.rbs +0 -30
- data/sig/temporalio/data_converter.rbs +0 -35
- data/sig/temporalio/error/failure.rbs +0 -121
- data/sig/temporalio/error/workflow_failure.rbs +0 -9
- data/sig/temporalio/errors.rbs +0 -36
- data/sig/temporalio/failure_converter/base.rbs +0 -12
- data/sig/temporalio/failure_converter/basic.rbs +0 -86
- data/sig/temporalio/failure_converter.rbs +0 -5
- data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
- data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
- data/sig/temporalio/interceptor/chain.rbs +0 -24
- data/sig/temporalio/interceptor/client.rbs +0 -148
- data/sig/temporalio/interceptor.rbs +0 -6
- data/sig/temporalio/payload_codec/base.rbs +0 -12
- data/sig/temporalio/payload_converter/base.rbs +0 -12
- data/sig/temporalio/payload_converter/bytes.rbs +0 -9
- data/sig/temporalio/payload_converter/composite.rbs +0 -19
- data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
- data/sig/temporalio/payload_converter/json.rbs +0 -9
- data/sig/temporalio/payload_converter/nil.rbs +0 -9
- data/sig/temporalio/payload_converter.rbs +0 -5
- data/sig/temporalio/retry_policy.rbs +0 -25
- data/sig/temporalio/retry_state.rbs +0 -20
- data/sig/temporalio/runtime.rbs +0 -12
- data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
- data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
- data/sig/temporalio/testing/workflow_environment.rbs +0 -22
- data/sig/temporalio/testing.rbs +0 -35
- data/sig/temporalio/timeout_type.rbs +0 -15
- data/sig/temporalio/version.rbs +0 -3
- data/sig/temporalio/worker/activity_runner.rbs +0 -35
- data/sig/temporalio/worker/activity_worker.rbs +0 -44
- data/sig/temporalio/worker/reactor.rbs +0 -22
- data/sig/temporalio/worker/runner.rbs +0 -21
- data/sig/temporalio/worker/sync_worker.rbs +0 -23
- data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
- data/sig/temporalio/worker.rbs +0 -46
- data/sig/temporalio/workflow/async.rbs +0 -9
- data/sig/temporalio/workflow/execution_info.rbs +0 -55
- data/sig/temporalio/workflow/execution_status.rbs +0 -21
- data/sig/temporalio/workflow/future.rbs +0 -40
- data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
- data/sig/temporalio/workflow/info.rbs +0 -55
- data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
- data/sig/temporalio.rbs +0 -2
- data/sig/thermite_patch.rbs +0 -15
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
//! Utilities for and tracking of internal versions which alter history in incompatible ways
|
|
2
|
-
//! so that we can use older code paths for workflows executed on older core versions.
|
|
3
|
-
|
|
4
|
-
use std::collections::{BTreeSet, HashSet};
|
|
5
|
-
use temporal_sdk_core_protos::temporal::api::{
|
|
6
|
-
history::v1::WorkflowTaskCompletedEventAttributes, sdk::v1::WorkflowTaskCompletedMetadata,
|
|
7
|
-
workflowservice::v1::get_system_info_response,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/// This enumeration contains internal flags that may result in incompatible history changes with
|
|
11
|
-
/// older workflows, or other breaking changes.
|
|
12
|
-
///
|
|
13
|
-
/// When a flag has existed long enough the version it was introduced in is no longer supported, it
|
|
14
|
-
/// may be removed from the enum. *Importantly*, all variants must be given explicit values, such
|
|
15
|
-
/// that removing older variants does not create any change in existing values. Removed flag
|
|
16
|
-
/// variants must be reserved forever (a-la protobuf), and should be called out in a comment.
|
|
17
|
-
#[repr(u32)]
|
|
18
|
-
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Copy, Clone, Debug)]
|
|
19
|
-
pub(crate) enum CoreInternalFlags {
|
|
20
|
-
/// In this flag, additional checks were added to a number of state machines to ensure that
|
|
21
|
-
/// the ID and type of activities, local activities, and child workflows match during replay.
|
|
22
|
-
IdAndTypeDeterminismChecks = 1,
|
|
23
|
-
/// We received a value higher than this code can understand.
|
|
24
|
-
TooHigh = u32::MAX,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
28
|
-
pub(crate) struct InternalFlags {
|
|
29
|
-
enabled: bool,
|
|
30
|
-
core: BTreeSet<CoreInternalFlags>,
|
|
31
|
-
lang: BTreeSet<u32>,
|
|
32
|
-
core_since_last_complete: HashSet<CoreInternalFlags>,
|
|
33
|
-
lang_since_last_complete: HashSet<u32>,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
impl InternalFlags {
|
|
37
|
-
pub fn new(server_capabilities: &get_system_info_response::Capabilities) -> Self {
|
|
38
|
-
Self {
|
|
39
|
-
enabled: server_capabilities.sdk_metadata,
|
|
40
|
-
core: Default::default(),
|
|
41
|
-
lang: Default::default(),
|
|
42
|
-
core_since_last_complete: Default::default(),
|
|
43
|
-
lang_since_last_complete: Default::default(),
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
pub fn add_from_complete(&mut self, e: &WorkflowTaskCompletedEventAttributes) {
|
|
48
|
-
if !self.enabled {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if let Some(metadata) = e.sdk_metadata.as_ref() {
|
|
53
|
-
self.core.extend(
|
|
54
|
-
metadata
|
|
55
|
-
.core_used_flags
|
|
56
|
-
.iter()
|
|
57
|
-
.map(|u| CoreInternalFlags::from_u32(*u)),
|
|
58
|
-
);
|
|
59
|
-
self.lang.extend(metadata.lang_used_flags.iter());
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
pub fn add_lang_used(&mut self, flags: impl IntoIterator<Item = u32>) {
|
|
64
|
-
if !self.enabled {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
self.lang_since_last_complete.extend(flags.into_iter());
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/// Returns true if this flag may currently be used. If `should_record` is true, always returns
|
|
72
|
-
/// true and records the flag as being used, for taking later via
|
|
73
|
-
/// [Self::gather_for_wft_complete].
|
|
74
|
-
pub fn try_use(&mut self, core_patch: CoreInternalFlags, should_record: bool) -> bool {
|
|
75
|
-
if !self.enabled {
|
|
76
|
-
// If the server does not support the metadata field, we must assume
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if should_record {
|
|
81
|
-
self.core_since_last_complete.insert(core_patch);
|
|
82
|
-
true
|
|
83
|
-
} else {
|
|
84
|
-
self.core.contains(&core_patch)
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/// Wipes the recorded flags used during the current WFT and returns a partially filled
|
|
89
|
-
/// sdk metadata message that can be combined with any existing data before sending the WFT
|
|
90
|
-
/// complete
|
|
91
|
-
pub fn gather_for_wft_complete(&mut self) -> WorkflowTaskCompletedMetadata {
|
|
92
|
-
WorkflowTaskCompletedMetadata {
|
|
93
|
-
core_used_flags: self
|
|
94
|
-
.core_since_last_complete
|
|
95
|
-
.drain()
|
|
96
|
-
.map(|p| p as u32)
|
|
97
|
-
.collect(),
|
|
98
|
-
lang_used_flags: self.lang_since_last_complete.drain().collect(),
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
pub fn all_lang(&self) -> &BTreeSet<u32> {
|
|
103
|
-
&self.lang
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
impl CoreInternalFlags {
|
|
108
|
-
fn from_u32(v: u32) -> Self {
|
|
109
|
-
match v {
|
|
110
|
-
1 => Self::IdAndTypeDeterminismChecks,
|
|
111
|
-
_ => Self::TooHigh,
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
#[cfg(test)]
|
|
117
|
-
mod tests {
|
|
118
|
-
use super::*;
|
|
119
|
-
use temporal_sdk_core_protos::temporal::api::workflowservice::v1::get_system_info_response::Capabilities;
|
|
120
|
-
|
|
121
|
-
#[test]
|
|
122
|
-
fn disabled_in_capabilities_disables() {
|
|
123
|
-
let mut f = InternalFlags::new(&Capabilities::default());
|
|
124
|
-
f.add_lang_used([1]);
|
|
125
|
-
f.add_from_complete(&WorkflowTaskCompletedEventAttributes {
|
|
126
|
-
sdk_metadata: Some(WorkflowTaskCompletedMetadata {
|
|
127
|
-
core_used_flags: vec![1],
|
|
128
|
-
lang_used_flags: vec![],
|
|
129
|
-
}),
|
|
130
|
-
..Default::default()
|
|
131
|
-
});
|
|
132
|
-
let gathered = f.gather_for_wft_complete();
|
|
133
|
-
assert_matches!(gathered.core_used_flags.as_slice(), &[]);
|
|
134
|
-
assert_matches!(gathered.lang_used_flags.as_slice(), &[]);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
#![warn(missing_docs)] // error if there are missing docs
|
|
2
|
-
#![allow(clippy::upper_case_acronyms)]
|
|
3
|
-
|
|
4
|
-
//! This crate provides a basis for creating new Temporal SDKs without completely starting from
|
|
5
|
-
//! scratch
|
|
6
|
-
|
|
7
|
-
#[cfg(test)]
|
|
8
|
-
#[macro_use]
|
|
9
|
-
pub extern crate assert_matches;
|
|
10
|
-
#[macro_use]
|
|
11
|
-
extern crate tracing;
|
|
12
|
-
extern crate core;
|
|
13
|
-
|
|
14
|
-
mod abstractions;
|
|
15
|
-
pub mod ephemeral_server;
|
|
16
|
-
mod internal_flags;
|
|
17
|
-
mod pollers;
|
|
18
|
-
mod protosext;
|
|
19
|
-
pub mod replay;
|
|
20
|
-
pub(crate) mod retry_logic;
|
|
21
|
-
pub mod telemetry;
|
|
22
|
-
mod worker;
|
|
23
|
-
|
|
24
|
-
#[cfg(test)]
|
|
25
|
-
mod core_tests;
|
|
26
|
-
#[cfg(test)]
|
|
27
|
-
#[macro_use]
|
|
28
|
-
mod test_help;
|
|
29
|
-
|
|
30
|
-
pub(crate) use temporal_sdk_core_api::errors;
|
|
31
|
-
|
|
32
|
-
pub use pollers::{
|
|
33
|
-
Client, ClientOptions, ClientOptionsBuilder, ClientTlsConfig, RetryClient, RetryConfig,
|
|
34
|
-
TlsConfig, WorkflowClientTrait,
|
|
35
|
-
};
|
|
36
|
-
pub use temporal_sdk_core_api as api;
|
|
37
|
-
pub use temporal_sdk_core_protos as protos;
|
|
38
|
-
pub use temporal_sdk_core_protos::TaskToken;
|
|
39
|
-
pub use url::Url;
|
|
40
|
-
#[cfg(feature = "save_wf_inputs")]
|
|
41
|
-
pub use worker::replay_wf_state_inputs;
|
|
42
|
-
pub use worker::{Worker, WorkerConfig, WorkerConfigBuilder};
|
|
43
|
-
|
|
44
|
-
use crate::{
|
|
45
|
-
replay::{mock_client_from_histories, Historator, HistoryForReplay},
|
|
46
|
-
telemetry::{
|
|
47
|
-
metrics::{MetricsContext, TemporalMeter},
|
|
48
|
-
remove_trace_subscriber_for_current_thread, set_trace_subscriber_for_current_thread,
|
|
49
|
-
telemetry_init, TelemetryInstance,
|
|
50
|
-
},
|
|
51
|
-
worker::client::WorkerClientBag,
|
|
52
|
-
};
|
|
53
|
-
use futures::Stream;
|
|
54
|
-
use std::sync::Arc;
|
|
55
|
-
use temporal_client::{ConfiguredClient, TemporalServiceClientWithMetrics};
|
|
56
|
-
use temporal_sdk_core_api::{
|
|
57
|
-
errors::{CompleteActivityError, PollActivityError, PollWfError},
|
|
58
|
-
telemetry::TelemetryOptions,
|
|
59
|
-
Worker as WorkerTrait,
|
|
60
|
-
};
|
|
61
|
-
use temporal_sdk_core_protos::coresdk::ActivityHeartbeat;
|
|
62
|
-
|
|
63
|
-
/// Initialize a worker bound to a task queue.
|
|
64
|
-
///
|
|
65
|
-
/// You will need to have already initialized a [CoreRuntime] which will be used for this worker.
|
|
66
|
-
/// After the worker is initialized, you should use [CoreRuntime::tokio_handle] to run the worker's
|
|
67
|
-
/// async functions.
|
|
68
|
-
///
|
|
69
|
-
/// Lang implementations may pass in a [ConfiguredClient] directly (or a
|
|
70
|
-
/// [RetryClient] wrapping one, or a handful of other variants of the same idea). When they do so,
|
|
71
|
-
/// this function will always overwrite the client retry configuration, force the client to use the
|
|
72
|
-
/// namespace defined in the worker config, and set the client identity appropriately. IE: Use
|
|
73
|
-
/// [ClientOptions::connect_no_namespace], not [ClientOptions::connect].
|
|
74
|
-
pub fn init_worker<CT>(
|
|
75
|
-
runtime: &CoreRuntime,
|
|
76
|
-
worker_config: WorkerConfig,
|
|
77
|
-
client: CT,
|
|
78
|
-
) -> Result<Worker, anyhow::Error>
|
|
79
|
-
where
|
|
80
|
-
CT: Into<sealed::AnyClient>,
|
|
81
|
-
{
|
|
82
|
-
let client = {
|
|
83
|
-
let ll = client.into().into_inner();
|
|
84
|
-
let mut client = Client::new(*ll, worker_config.namespace.clone());
|
|
85
|
-
client.set_worker_build_id(worker_config.worker_build_id.clone());
|
|
86
|
-
if let Some(ref id_override) = worker_config.client_identity_override {
|
|
87
|
-
client.options_mut().identity = id_override.clone();
|
|
88
|
-
}
|
|
89
|
-
RetryClient::new(client, RetryConfig::default())
|
|
90
|
-
};
|
|
91
|
-
if client.namespace() != worker_config.namespace {
|
|
92
|
-
panic!("Passed in client is not bound to the same namespace as the worker");
|
|
93
|
-
}
|
|
94
|
-
let client_ident = client.get_options().identity.clone();
|
|
95
|
-
let sticky_q = sticky_q_name_for_worker(&client_ident, &worker_config);
|
|
96
|
-
let client_bag = Arc::new(WorkerClientBag::new(
|
|
97
|
-
client,
|
|
98
|
-
worker_config.namespace.clone(),
|
|
99
|
-
client_ident,
|
|
100
|
-
worker_config.worker_build_id.clone(),
|
|
101
|
-
worker_config.use_worker_versioning,
|
|
102
|
-
));
|
|
103
|
-
|
|
104
|
-
Ok(Worker::new(
|
|
105
|
-
worker_config,
|
|
106
|
-
sticky_q,
|
|
107
|
-
client_bag,
|
|
108
|
-
Some(&runtime.telemetry),
|
|
109
|
-
))
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/// Create a worker for replaying a specific history. It will auto-shutdown as soon as the history
|
|
113
|
-
/// has finished being replayed.
|
|
114
|
-
///
|
|
115
|
-
/// You do not necessarily need a [CoreRuntime] for replay workers, but it's advisable to create
|
|
116
|
-
/// one and use it to run the replay worker's async functions the same way you would for a normal
|
|
117
|
-
/// worker.
|
|
118
|
-
pub fn init_replay_worker<I>(
|
|
119
|
-
mut config: WorkerConfig,
|
|
120
|
-
histories: I,
|
|
121
|
-
) -> Result<Worker, anyhow::Error>
|
|
122
|
-
where
|
|
123
|
-
I: Stream<Item = HistoryForReplay> + Send + 'static,
|
|
124
|
-
{
|
|
125
|
-
info!(
|
|
126
|
-
task_queue = config.task_queue.as_str(),
|
|
127
|
-
"Registering replay worker"
|
|
128
|
-
);
|
|
129
|
-
config.max_cached_workflows = 1;
|
|
130
|
-
config.max_concurrent_wft_polls = 1;
|
|
131
|
-
config.no_remote_activities = true;
|
|
132
|
-
let historator = Historator::new(histories);
|
|
133
|
-
let post_activate = historator.get_post_activate_hook();
|
|
134
|
-
let shutdown_tok = historator.get_shutdown_setter();
|
|
135
|
-
let client = mock_client_from_histories(historator);
|
|
136
|
-
let mut worker = Worker::new(config, None, Arc::new(client), None);
|
|
137
|
-
worker.set_post_activate_hook(post_activate);
|
|
138
|
-
shutdown_tok(worker.shutdown_token());
|
|
139
|
-
Ok(worker)
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/// Creates a unique sticky queue name for a worker, iff the config allows for 1 or more cached
|
|
143
|
-
/// workflows.
|
|
144
|
-
pub(crate) fn sticky_q_name_for_worker(
|
|
145
|
-
process_identity: &str,
|
|
146
|
-
config: &WorkerConfig,
|
|
147
|
-
) -> Option<String> {
|
|
148
|
-
if config.max_cached_workflows > 0 {
|
|
149
|
-
Some(format!(
|
|
150
|
-
"{}-{}-{}",
|
|
151
|
-
&process_identity,
|
|
152
|
-
&config.task_queue,
|
|
153
|
-
uuid::Uuid::new_v4().simple()
|
|
154
|
-
))
|
|
155
|
-
} else {
|
|
156
|
-
None
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
mod sealed {
|
|
161
|
-
use super::*;
|
|
162
|
-
|
|
163
|
-
/// Allows passing different kinds of clients into things that want to be flexible. Motivating
|
|
164
|
-
/// use-case was worker initialization.
|
|
165
|
-
///
|
|
166
|
-
/// Needs to exist in this crate to avoid blanket impl conflicts.
|
|
167
|
-
pub struct AnyClient(Box<ConfiguredClient<TemporalServiceClientWithMetrics>>);
|
|
168
|
-
impl AnyClient {
|
|
169
|
-
pub(crate) fn into_inner(self) -> Box<ConfiguredClient<TemporalServiceClientWithMetrics>> {
|
|
170
|
-
self.0
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
impl From<RetryClient<ConfiguredClient<TemporalServiceClientWithMetrics>>> for AnyClient {
|
|
175
|
-
fn from(c: RetryClient<ConfiguredClient<TemporalServiceClientWithMetrics>>) -> Self {
|
|
176
|
-
Self(Box::new(c.into_inner()))
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
impl From<RetryClient<Client>> for AnyClient {
|
|
180
|
-
fn from(c: RetryClient<Client>) -> Self {
|
|
181
|
-
Self(Box::new(c.into_inner().into_inner()))
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
impl From<Arc<RetryClient<Client>>> for AnyClient {
|
|
185
|
-
fn from(c: Arc<RetryClient<Client>>) -> Self {
|
|
186
|
-
Self(Box::new(c.get_client().inner().clone()))
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
impl From<ConfiguredClient<TemporalServiceClientWithMetrics>> for AnyClient {
|
|
190
|
-
fn from(c: ConfiguredClient<TemporalServiceClientWithMetrics>) -> Self {
|
|
191
|
-
Self(Box::new(c))
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/// Holds shared state/components needed to back instances of workers and clients. More than one
|
|
197
|
-
/// may be instantiated, but typically only one is needed. More than one runtime instance may be
|
|
198
|
-
/// useful if multiple different telemetry settings are required.
|
|
199
|
-
pub struct CoreRuntime {
|
|
200
|
-
telemetry: TelemetryInstance,
|
|
201
|
-
runtime: Option<tokio::runtime::Runtime>,
|
|
202
|
-
runtime_handle: tokio::runtime::Handle,
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
impl CoreRuntime {
|
|
206
|
-
/// Create a new core runtime with the provided telemetry options and tokio runtime builder.
|
|
207
|
-
/// Also initialize telemetry for the thread this is being called on.
|
|
208
|
-
///
|
|
209
|
-
/// Note that this function will call the [tokio::runtime::Builder::enable_all] builder option
|
|
210
|
-
/// on the Tokio runtime builder, and will call [tokio::runtime::Builder::on_thread_start] to
|
|
211
|
-
/// ensure telemetry subscribers are set on every tokio thread.
|
|
212
|
-
///
|
|
213
|
-
/// **Important**: You need to call this *before* calling any async functions on workers or
|
|
214
|
-
/// clients, otherwise the tracing subscribers will not be properly attached.
|
|
215
|
-
///
|
|
216
|
-
/// # Panics
|
|
217
|
-
/// If a tokio runtime has already been initialized. To re-use an existing runtime, call
|
|
218
|
-
/// [CoreRuntime::new_assume_tokio].
|
|
219
|
-
pub fn new(
|
|
220
|
-
telemetry_options: TelemetryOptions,
|
|
221
|
-
mut tokio_builder: tokio::runtime::Builder,
|
|
222
|
-
) -> Result<Self, anyhow::Error> {
|
|
223
|
-
let telemetry = telemetry_init(telemetry_options)?;
|
|
224
|
-
let subscriber = telemetry.trace_subscriber();
|
|
225
|
-
let runtime = tokio_builder
|
|
226
|
-
.enable_all()
|
|
227
|
-
.on_thread_start(move || {
|
|
228
|
-
set_trace_subscriber_for_current_thread(subscriber.clone());
|
|
229
|
-
})
|
|
230
|
-
.build()?;
|
|
231
|
-
let _rg = runtime.enter();
|
|
232
|
-
let mut me = Self::new_assume_tokio_initialized_telem(telemetry);
|
|
233
|
-
me.runtime = Some(runtime);
|
|
234
|
-
Ok(me)
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/// Initialize telemetry for the thread this is being called on, assuming a tokio runtime is
|
|
238
|
-
/// already active and this call exists in its context. See [Self::new] for more.
|
|
239
|
-
///
|
|
240
|
-
/// # Panics
|
|
241
|
-
/// If there is no currently active Tokio runtime
|
|
242
|
-
pub fn new_assume_tokio(telemetry_options: TelemetryOptions) -> Result<Self, anyhow::Error> {
|
|
243
|
-
let telemetry = telemetry_init(telemetry_options)?;
|
|
244
|
-
Ok(Self::new_assume_tokio_initialized_telem(telemetry))
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/// Construct a runtime from an already-initialized telemetry instance, assuming a tokio runtime
|
|
248
|
-
/// is already active and this call exists in its context. See [Self::new] for more.
|
|
249
|
-
///
|
|
250
|
-
/// # Panics
|
|
251
|
-
/// If there is no currently active Tokio runtime
|
|
252
|
-
pub fn new_assume_tokio_initialized_telem(telemetry: TelemetryInstance) -> Self {
|
|
253
|
-
let runtime_handle = tokio::runtime::Handle::current();
|
|
254
|
-
set_trace_subscriber_for_current_thread(telemetry.trace_subscriber());
|
|
255
|
-
Self {
|
|
256
|
-
telemetry,
|
|
257
|
-
runtime: None,
|
|
258
|
-
runtime_handle,
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/// Get a handle to the tokio runtime used by this Core runtime.
|
|
263
|
-
pub fn tokio_handle(&self) -> tokio::runtime::Handle {
|
|
264
|
-
self.runtime_handle.clone()
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/// Returns the metric meter used for recording metrics, if they were enabled.
|
|
268
|
-
pub fn metric_meter(&self) -> Option<TemporalMeter> {
|
|
269
|
-
self.telemetry.get_metric_meter()
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/// Return the trace subscriber associated with the telemetry options/instance. Can be used
|
|
273
|
-
/// to manually set the default for a thread or globally using the `tracing` crate, or with
|
|
274
|
-
/// [set_trace_subscriber_for_current_thread]
|
|
275
|
-
pub fn trace_subscriber(&self) -> Arc<dyn tracing::Subscriber + Send + Sync> {
|
|
276
|
-
self.telemetry.trace_subscriber()
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/// Return a reference to the owned [TelemetryInstance]
|
|
280
|
-
pub fn telemetry(&self) -> &TelemetryInstance {
|
|
281
|
-
&self.telemetry
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
impl Drop for CoreRuntime {
|
|
286
|
-
fn drop(&mut self) {
|
|
287
|
-
remove_trace_subscriber_for_current_thread();
|
|
288
|
-
}
|
|
289
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
mod poll_buffer;
|
|
2
|
-
|
|
3
|
-
pub(crate) use poll_buffer::{
|
|
4
|
-
new_activity_task_buffer, new_workflow_task_buffer, WorkflowTaskPoller,
|
|
5
|
-
};
|
|
6
|
-
pub use temporal_client::{
|
|
7
|
-
Client, ClientOptions, ClientOptionsBuilder, ClientTlsConfig, RetryClient, RetryConfig,
|
|
8
|
-
TlsConfig, WorkflowClientTrait,
|
|
9
|
-
};
|
|
10
|
-
use temporal_sdk_core_protos::temporal::api::workflowservice::v1::{
|
|
11
|
-
PollActivityTaskQueueResponse, PollWorkflowTaskQueueResponse,
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
#[cfg(test)]
|
|
15
|
-
use futures::Future;
|
|
16
|
-
|
|
17
|
-
pub type Result<T, E = tonic::Status> = std::result::Result<T, E>;
|
|
18
|
-
|
|
19
|
-
/// A trait for things that poll the server. Hides complexity of concurrent polling or polling
|
|
20
|
-
/// on sticky/nonsticky queues simultaneously.
|
|
21
|
-
#[cfg_attr(test, mockall::automock)]
|
|
22
|
-
#[cfg_attr(test, allow(unused))]
|
|
23
|
-
#[async_trait::async_trait]
|
|
24
|
-
pub trait Poller<PollResult>
|
|
25
|
-
where
|
|
26
|
-
PollResult: Send + Sync + 'static,
|
|
27
|
-
{
|
|
28
|
-
async fn poll(&self) -> Option<Result<PollResult>>;
|
|
29
|
-
fn notify_shutdown(&self);
|
|
30
|
-
async fn shutdown(self);
|
|
31
|
-
/// Need a separate shutdown to be able to consume boxes :(
|
|
32
|
-
async fn shutdown_box(self: Box<Self>);
|
|
33
|
-
}
|
|
34
|
-
pub type BoxedPoller<T> = Box<dyn Poller<T> + Send + Sync + 'static>;
|
|
35
|
-
pub type BoxedWFPoller = BoxedPoller<PollWorkflowTaskQueueResponse>;
|
|
36
|
-
pub type BoxedActPoller = BoxedPoller<PollActivityTaskQueueResponse>;
|
|
37
|
-
|
|
38
|
-
#[cfg(test)]
|
|
39
|
-
mockall::mock! {
|
|
40
|
-
pub ManualPoller<T: Send + Sync + 'static> {}
|
|
41
|
-
#[allow(unused)]
|
|
42
|
-
impl<T: Send + Sync + 'static> Poller<T> for ManualPoller<T> {
|
|
43
|
-
fn poll<'a, 'b>(&self)
|
|
44
|
-
-> impl Future<Output = Option<Result<T>>> + Send + 'b
|
|
45
|
-
where 'a: 'b, Self: 'b;
|
|
46
|
-
fn notify_shutdown(&self);
|
|
47
|
-
fn shutdown<'a>(self)
|
|
48
|
-
-> impl Future<Output = ()> + Send + 'a
|
|
49
|
-
where Self: 'a;
|
|
50
|
-
fn shutdown_box<'a>(self: Box<Self>)
|
|
51
|
-
-> impl Future<Output = ()> + Send + 'a
|
|
52
|
-
where Self: 'a;
|
|
53
|
-
}
|
|
54
|
-
}
|