temporalio 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +180 -7
- data/bridge/Cargo.lock +208 -76
- data/bridge/Cargo.toml +5 -2
- data/bridge/sdk-core/Cargo.toml +1 -1
- data/bridge/sdk-core/README.md +20 -10
- data/bridge/sdk-core/client/Cargo.toml +1 -1
- data/bridge/sdk-core/client/src/lib.rs +227 -59
- data/bridge/sdk-core/client/src/metrics.rs +17 -8
- data/bridge/sdk-core/client/src/raw.rs +13 -12
- data/bridge/sdk-core/client/src/retry.rs +132 -43
- data/bridge/sdk-core/core/Cargo.toml +28 -15
- data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
- data/bridge/sdk-core/core/src/abstractions.rs +225 -36
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +217 -79
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +565 -34
- data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -90
- data/bridge/sdk-core/core/src/core_tests/workers.rs +3 -5
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +430 -67
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
- data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
- data/bridge/sdk-core/core/src/lib.rs +148 -34
- data/bridge/sdk-core/core/src/protosext/mod.rs +1 -1
- data/bridge/sdk-core/core/src/replay/mod.rs +185 -41
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +219 -140
- data/bridge/sdk-core/core/src/telemetry/mod.rs +326 -315
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +20 -14
- data/bridge/sdk-core/core/src/test_help/mod.rs +85 -21
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +364 -128
- data/bridge/sdk-core/core/src/worker/activities.rs +263 -170
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +23 -3
- data/bridge/sdk-core/core/src/worker/client.rs +48 -6
- data/bridge/sdk-core/core/src/worker/mod.rs +186 -75
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +13 -24
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +879 -226
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +101 -48
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +90 -32
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -10
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +160 -83
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +36 -54
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +179 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +104 -157
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -13
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +10 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -11
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +395 -299
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +12 -20
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +33 -18
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1032 -374
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +525 -392
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +3 -6
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +456 -681
- data/bridge/sdk-core/core-api/Cargo.toml +6 -4
- data/bridge/sdk-core/core-api/src/errors.rs +1 -34
- data/bridge/sdk-core/core-api/src/lib.rs +7 -45
- data/bridge/sdk-core/core-api/src/telemetry.rs +141 -0
- data/bridge/sdk-core/core-api/src/worker.rs +27 -1
- data/bridge/sdk-core/etc/deps.svg +115 -140
- data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
- 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/protos/api_upstream/buf.yaml +0 -3
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
- data/bridge/sdk-core/protos/api_upstream/{temporal/api/enums/v1/cluster.proto → build/tools.go} +7 -18
- data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +12 -9
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +15 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +4 -9
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +10 -8
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +28 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +62 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +24 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -21
- data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +110 -31
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +4 -4
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +111 -36
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +19 -5
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +9 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +9 -1
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
- data/bridge/sdk-core/sdk/Cargo.toml +4 -3
- data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
- data/bridge/sdk-core/sdk/src/lib.rs +94 -25
- data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
- data/bridge/sdk-core/sdk/src/workflow_future.rs +10 -13
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- data/bridge/sdk-core/sdk-core-protos/build.rs +36 -2
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +164 -104
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +27 -23
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +252 -74
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- data/bridge/sdk-core/test-utils/Cargo.toml +4 -1
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
- data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
- data/bridge/sdk-core/test-utils/src/lib.rs +161 -50
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
- data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +239 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -60
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +151 -116
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +54 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +115 -24
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +27 -18
- data/bridge/sdk-core/tests/main.rs +8 -16
- data/bridge/sdk-core/tests/runner.rs +75 -36
- data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
- data/bridge/src/connection.rs +117 -82
- data/bridge/src/lib.rs +356 -42
- data/bridge/src/runtime.rs +10 -3
- data/bridge/src/test_server.rs +153 -0
- data/bridge/src/worker.rs +133 -9
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
- data/lib/gen/temporal/api/command/v1/message_pb.rb +10 -16
- data/lib/gen/temporal/api/common/v1/message_pb.rb +5 -1
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +3 -3
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +5 -4
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +9 -1
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +7 -10
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +1 -1
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/history/v1/message_pb.rb +34 -25
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +14 -51
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
- data/lib/gen/temporal/api/query/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +22 -1
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
- data/lib/gen/temporal/api/update/v1/message_pb.rb +49 -3
- data/lib/gen/temporal/api/version/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +47 -20
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +28 -21
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +32 -24
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
- data/lib/temporalio/activity/context.rb +102 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/connect_options.rb +15 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge/retry_config.rb +24 -0
- data/lib/temporalio/bridge/tls_options.rb +19 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/{temporal → temporalio}/client/implementation.rb +57 -56
- data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
- data/lib/{temporal → temporalio}/client.rb +19 -32
- data/lib/temporalio/connection/retry_config.rb +44 -0
- data/lib/temporalio/connection/service.rb +20 -0
- data/lib/temporalio/connection/test_service.rb +92 -0
- data/lib/temporalio/connection/tls_options.rb +51 -0
- data/lib/temporalio/connection/workflow_service.rb +731 -0
- data/lib/temporalio/connection.rb +86 -0
- data/lib/{temporal → temporalio}/data_converter.rb +76 -35
- data/lib/{temporal → temporalio}/error/failure.rb +6 -6
- data/lib/{temporal → temporalio}/error/workflow_failure.rb +4 -2
- data/lib/{temporal → temporalio}/errors.rb +19 -1
- data/lib/{temporal → temporalio}/failure_converter/base.rb +5 -5
- data/lib/{temporal → temporalio}/failure_converter/basic.rb +58 -52
- data/lib/temporalio/failure_converter.rb +7 -0
- data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
- data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
- data/lib/{temporal → temporalio}/interceptor/chain.rb +7 -6
- data/lib/{temporal → temporalio}/interceptor/client.rb +27 -2
- data/lib/temporalio/interceptor.rb +22 -0
- data/lib/{temporal → temporalio}/payload_codec/base.rb +5 -5
- data/lib/{temporal → temporalio}/payload_converter/base.rb +3 -3
- data/lib/{temporal → temporalio}/payload_converter/bytes.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/composite.rb +7 -5
- data/lib/{temporal → temporalio}/payload_converter/encoding_base.rb +4 -4
- data/lib/{temporal → temporalio}/payload_converter/json.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/nil.rb +4 -3
- data/lib/temporalio/payload_converter.rb +14 -0
- data/lib/{temporal → temporalio}/retry_policy.rb +17 -7
- data/lib/{temporal → temporalio}/retry_state.rb +1 -1
- data/lib/temporalio/runtime.rb +25 -0
- data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
- data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
- data/lib/temporalio/testing/workflow_environment.rb +112 -0
- data/lib/temporalio/testing.rb +175 -0
- data/lib/{temporal → temporalio}/timeout_type.rb +2 -2
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +114 -0
- data/lib/temporalio/worker/activity_worker.rb +164 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +124 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +204 -0
- data/lib/temporalio/workflow/async.rb +46 -0
- data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
- data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
- data/lib/temporalio/workflow/future.rb +138 -0
- data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
- data/lib/temporalio/workflow/info.rb +76 -0
- data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
- data/lib/temporalio.rb +12 -3
- data/temporalio.gemspec +11 -6
- metadata +137 -64
- data/bridge/sdk-core/Cargo.lock +0 -2606
- data/bridge/sdk-core/bridge-ffi/Cargo.toml +0 -24
- data/bridge/sdk-core/bridge-ffi/LICENSE.txt +0 -23
- data/bridge/sdk-core/bridge-ffi/build.rs +0 -25
- data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -249
- data/bridge/sdk-core/bridge-ffi/src/lib.rs +0 -825
- data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +0 -211
- data/bridge/sdk-core/core/src/log_export.rs +0 -62
- data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +0 -127
- data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +0 -71
- data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +0 -83
- data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
- data/bridge/sdk-core/sdk/src/conversions.rs +0 -8
- data/lib/bridge.so +0 -0
- data/lib/gen/temporal/api/cluster/v1/message_pb.rb +0 -67
- data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +0 -26
- data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
- data/lib/temporal/bridge.rb +0 -14
- data/lib/temporal/connection.rb +0 -736
- data/lib/temporal/failure_converter.rb +0 -8
- data/lib/temporal/payload_converter.rb +0 -14
- data/lib/temporal/runtime.rb +0 -22
- data/lib/temporal/version.rb +0 -3
- data/lib/temporal.rb +0 -8
@@ -1,187 +1,162 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
-
<!-- Generated by graphviz version
|
4
|
+
<!-- Generated by graphviz version 7.0.4 (0)
|
5
5
|
-->
|
6
|
-
<!--
|
7
|
-
<svg width="
|
8
|
-
viewBox="0.00 0.00
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
|
10
|
-
<
|
11
|
-
<polygon fill="white" stroke="transparent" points="-4,4 -4,-472 520.5,-472 520.5,4 -4,4"/>
|
6
|
+
<!-- Pages: 1 -->
|
7
|
+
<svg width="436pt" height="404pt"
|
8
|
+
viewBox="0.00 0.00 436.26 404.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
|
10
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-400 432.26,-400 432.26,4 -4,4"/>
|
12
11
|
<!-- 0 -->
|
13
12
|
<g id="node1" class="node">
|
14
13
|
<title>0</title>
|
15
|
-
<polygon fill="none" stroke="black" points="
|
16
|
-
<text text-anchor="middle" x="
|
14
|
+
<polygon fill="none" stroke="black" points="255,-396 139,-396 139,-360 255,-360 255,-396"/>
|
15
|
+
<text text-anchor="middle" x="197" y="-374.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core</text>
|
17
16
|
</g>
|
18
17
|
<!-- 1 -->
|
19
18
|
<g id="node2" class="node">
|
20
19
|
<title>1</title>
|
21
|
-
<polygon fill="none" stroke="black" points="
|
22
|
-
<text text-anchor="middle" x="
|
20
|
+
<polygon fill="none" stroke="black" points="58,-324 0,-324 0,-288 58,-288 58,-324"/>
|
21
|
+
<text text-anchor="middle" x="29" y="-302.3" font-family="Times,serif" font-size="14.00">rustfsm</text>
|
23
22
|
</g>
|
24
23
|
<!-- 0->1 -->
|
25
24
|
<g id="edge1" class="edge">
|
26
25
|
<title>0->1</title>
|
27
|
-
<path fill="none" stroke="black" d="
|
28
|
-
<polygon fill="black" stroke="black" points="
|
26
|
+
<path fill="none" stroke="black" d="M155.04,-359.52C128.68,-348.53 94.87,-334.45 68.91,-323.63"/>
|
27
|
+
<polygon fill="black" stroke="black" points="70.28,-320.41 59.7,-319.79 67.59,-326.87 70.28,-320.41"/>
|
29
28
|
</g>
|
30
|
-
<!--
|
31
|
-
<g id="
|
32
|
-
<title>
|
33
|
-
<polygon fill="none" stroke="black" points="
|
34
|
-
<text text-anchor="middle" x="
|
35
|
-
</g>
|
36
|
-
<!-- 0->6 -->
|
37
|
-
<g id="edge3" class="edge">
|
38
|
-
<title>0->6</title>
|
39
|
-
<path fill="none" stroke="black" d="M78.81,-431.91C67.71,-405.62 48.5,-353.45 48.5,-307 48.5,-307 48.5,-307 48.5,-161 48.5,-75.33 155.16,-41.29 235.63,-27.8"/>
|
40
|
-
<polygon fill="black" stroke="black" points="236.47,-31.21 245.8,-26.18 235.37,-24.3 236.47,-31.21"/>
|
41
|
-
</g>
|
42
|
-
<!-- 7 -->
|
43
|
-
<g id="node6" class="node">
|
44
|
-
<title>7</title>
|
45
|
-
<polygon fill="none" stroke="black" points="266,-180 129,-180 129,-144 266,-144 266,-180"/>
|
46
|
-
<text text-anchor="middle" x="197.5" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
29
|
+
<!-- 3 -->
|
30
|
+
<g id="node3" class="node">
|
31
|
+
<title>3</title>
|
32
|
+
<polygon fill="none" stroke="black" points="368,-108 268,-108 268,-72 368,-72 368,-108"/>
|
33
|
+
<text text-anchor="middle" x="318" y="-86.3" font-family="Times,serif" font-size="14.00">temporal-client</text>
|
47
34
|
</g>
|
48
|
-
<!-- 0->
|
35
|
+
<!-- 0->3 -->
|
49
36
|
<g id="edge2" class="edge">
|
50
|
-
<title>0->
|
51
|
-
<path fill="none" stroke="black" d="
|
52
|
-
<polygon fill="black" stroke="black" points="
|
37
|
+
<title>0->3</title>
|
38
|
+
<path fill="none" stroke="black" d="M255.43,-370.58C312.02,-363.02 391.98,-348.3 411,-324 461.94,-258.91 386.25,-162.28 343.68,-116.65"/>
|
39
|
+
<polygon fill="black" stroke="black" points="346.38,-114.4 336.95,-109.58 341.31,-119.23 346.38,-114.4"/>
|
53
40
|
</g>
|
54
|
-
<!--
|
55
|
-
<g id="
|
56
|
-
<title>
|
57
|
-
<polygon fill="none" stroke="black" points="
|
58
|
-
<text text-anchor="middle" x="
|
41
|
+
<!-- 4 -->
|
42
|
+
<g id="node4" class="node">
|
43
|
+
<title>4</title>
|
44
|
+
<polygon fill="none" stroke="black" points="298.5,-36 143.5,-36 143.5,0 298.5,0 298.5,-36"/>
|
45
|
+
<text text-anchor="middle" x="221" y="-14.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-protos</text>
|
59
46
|
</g>
|
60
|
-
<!--
|
61
|
-
<g id="
|
62
|
-
<title>
|
63
|
-
<path fill="none" stroke="black" d="
|
64
|
-
<polygon fill="black" stroke="black" points="
|
47
|
+
<!-- 0->4 -->
|
48
|
+
<g id="edge5" class="edge">
|
49
|
+
<title>0->4</title>
|
50
|
+
<path fill="none" stroke="black" d="M170.41,-359.59C137.57,-335.74 86,-289.6 86,-235 86,-235 86,-235 86,-161 86,-107.38 137.19,-65.95 176.53,-42.03"/>
|
51
|
+
<polygon fill="black" stroke="black" points="178.08,-45.18 184.93,-37.1 174.53,-39.14 178.08,-45.18"/>
|
65
52
|
</g>
|
66
53
|
<!-- 5 -->
|
67
|
-
<g id="
|
54
|
+
<g id="node5" class="node">
|
68
55
|
<title>5</title>
|
69
|
-
<polygon fill="none" stroke="black" points="
|
70
|
-
<text text-anchor="middle" x="
|
56
|
+
<polygon fill="none" stroke="black" points="289.5,-180 152.5,-180 152.5,-144 289.5,-144 289.5,-180"/>
|
57
|
+
<text text-anchor="middle" x="221" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
71
58
|
</g>
|
72
|
-
<!--
|
73
|
-
<g id="
|
74
|
-
<title>
|
75
|
-
<path fill="none" stroke="black" d="
|
76
|
-
<polygon fill="black" stroke="black" points="
|
59
|
+
<!-- 0->5 -->
|
60
|
+
<g id="edge4" class="edge">
|
61
|
+
<title>0->5</title>
|
62
|
+
<path fill="none" stroke="black" d="M188.08,-359.89C173.64,-329.74 148.72,-265.64 169,-216 173.27,-205.55 180.7,-196.05 188.64,-188.07"/>
|
63
|
+
<polygon fill="black" stroke="black" points="190.92,-190.72 195.87,-181.35 186.16,-185.59 190.92,-190.72"/>
|
77
64
|
</g>
|
78
|
-
<!--
|
79
|
-
<g id="
|
80
|
-
<title>
|
81
|
-
<
|
82
|
-
<
|
65
|
+
<!-- 6 -->
|
66
|
+
<g id="node6" class="node">
|
67
|
+
<title>6</title>
|
68
|
+
<polygon fill="none" stroke="black" points="266.5,-252 177.5,-252 177.5,-216 266.5,-216 266.5,-252"/>
|
69
|
+
<text text-anchor="middle" x="222" y="-230.3" font-family="Times,serif" font-size="14.00">temporal-sdk</text>
|
83
70
|
</g>
|
84
|
-
<!--
|
85
|
-
<g id="
|
86
|
-
<title>
|
87
|
-
<path fill="none" stroke="
|
88
|
-
<polygon fill="
|
71
|
+
<!-- 0->6 -->
|
72
|
+
<g id="edge3" class="edge">
|
73
|
+
<title>0->6</title>
|
74
|
+
<path fill="none" stroke="blue" d="M195.45,-359.59C197.18,-335.5 204.59,-291.75 211.56,-263.03"/>
|
75
|
+
<polygon fill="blue" stroke="blue" points="214.89,-264.13 214.02,-253.58 208.12,-262.37 214.89,-264.13"/>
|
89
76
|
</g>
|
90
|
-
<!--
|
77
|
+
<!-- 7 -->
|
91
78
|
<g id="node7" class="node">
|
92
|
-
<title>
|
93
|
-
<polygon fill="none" stroke="black" points="
|
94
|
-
<text text-anchor="middle" x="
|
79
|
+
<title>7</title>
|
80
|
+
<polygon fill="none" stroke="black" points="401.5,-324 234.5,-324 234.5,-288 401.5,-288 401.5,-324"/>
|
81
|
+
<text text-anchor="middle" x="318" y="-302.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-test-utils</text>
|
95
82
|
</g>
|
96
|
-
<!--
|
83
|
+
<!-- 0->7 -->
|
97
84
|
<g id="edge6" class="edge">
|
98
|
-
<title>
|
99
|
-
<path fill="none" stroke="blue" d="
|
100
|
-
<polygon fill="blue" stroke="blue" points="
|
85
|
+
<title>0->7</title>
|
86
|
+
<path fill="none" stroke="blue" d="M221.29,-359.52C235.94,-350.51 254.96,-339.42 272.29,-329.76"/>
|
87
|
+
<polygon fill="blue" stroke="blue" points="273.86,-332.89 280.93,-324.99 270.48,-326.76 273.86,-332.89"/>
|
101
88
|
</g>
|
102
|
-
<!--
|
103
|
-
<g id="
|
104
|
-
<title>
|
105
|
-
<
|
106
|
-
<
|
89
|
+
<!-- 3->4 -->
|
90
|
+
<g id="edge7" class="edge">
|
91
|
+
<title>3->4</title>
|
92
|
+
<path fill="none" stroke="black" d="M294.02,-71.7C282.01,-63.03 267.28,-52.4 254.21,-42.96"/>
|
93
|
+
<polygon fill="black" stroke="black" points="256.42,-40.25 246.27,-37.23 252.33,-45.92 256.42,-40.25"/>
|
107
94
|
</g>
|
108
|
-
<!--
|
109
|
-
<g id="
|
110
|
-
<title>
|
111
|
-
<path fill="none" stroke="
|
112
|
-
<polygon fill="
|
95
|
+
<!-- 5->3 -->
|
96
|
+
<g id="edge8" class="edge">
|
97
|
+
<title>5->3</title>
|
98
|
+
<path fill="none" stroke="black" d="M244.98,-143.7C256.99,-135.03 271.72,-124.4 284.79,-114.96"/>
|
99
|
+
<polygon fill="black" stroke="black" points="286.67,-117.92 292.73,-109.23 282.58,-112.25 286.67,-117.92"/>
|
113
100
|
</g>
|
114
|
-
<!-- 5->
|
115
|
-
<g id="
|
116
|
-
<title>5->
|
117
|
-
<path fill="none" stroke="black" d="
|
118
|
-
<polygon fill="black" stroke="black" points="
|
101
|
+
<!-- 5->4 -->
|
102
|
+
<g id="edge9" class="edge">
|
103
|
+
<title>5->4</title>
|
104
|
+
<path fill="none" stroke="black" d="M221,-143.59C221,-119.61 221,-76.14 221,-47.42"/>
|
105
|
+
<polygon fill="black" stroke="black" points="224.5,-47.62 221,-37.62 217.5,-47.62 224.5,-47.62"/>
|
119
106
|
</g>
|
120
|
-
<!--
|
107
|
+
<!-- 6->0 -->
|
121
108
|
<g id="edge11" class="edge">
|
122
|
-
<title>
|
123
|
-
<path fill="none" stroke="black" d="
|
124
|
-
<polygon fill="black" stroke="black" points="
|
125
|
-
</g>
|
126
|
-
<!-- 7->6 -->
|
127
|
-
<g id="edge12" class="edge">
|
128
|
-
<title>7->6</title>
|
129
|
-
<path fill="none" stroke="black" d="M210.74,-143.85C225.01,-125.62 248.63,-96.14 270.5,-72 279.24,-62.36 289.24,-52.16 298.18,-43.31"/>
|
130
|
-
<polygon fill="black" stroke="black" points="300.7,-45.74 305.39,-36.24 295.8,-40.75 300.7,-45.74"/>
|
109
|
+
<title>6->0</title>
|
110
|
+
<path fill="none" stroke="black" d="M223.57,-252.11C221.89,-276.03 214.51,-319.76 207.53,-348.6"/>
|
111
|
+
<polygon fill="black" stroke="black" points="204.18,-347.56 205.06,-358.12 210.96,-349.32 204.18,-347.56"/>
|
131
112
|
</g>
|
132
|
-
<!--
|
133
|
-
<g id="
|
134
|
-
<title>
|
135
|
-
<path fill="none" stroke="black" d="
|
136
|
-
<polygon fill="black" stroke="black" points="
|
113
|
+
<!-- 6->3 -->
|
114
|
+
<g id="edge10" class="edge">
|
115
|
+
<title>6->3</title>
|
116
|
+
<path fill="none" stroke="black" d="M258.49,-215.67C273.19,-206.93 288.99,-194.98 299,-180 310.95,-162.11 315.57,-138.07 317.27,-119.49"/>
|
117
|
+
<polygon fill="black" stroke="black" points="320.75,-119.9 317.91,-109.69 313.76,-119.44 320.75,-119.9"/>
|
137
118
|
</g>
|
138
|
-
<!--
|
119
|
+
<!-- 6->4 -->
|
139
120
|
<g id="edge13" class="edge">
|
140
|
-
<title>
|
141
|
-
<path fill="none" stroke="black" d="
|
142
|
-
<polygon fill="black" stroke="black" points="
|
121
|
+
<title>6->4</title>
|
122
|
+
<path fill="none" stroke="black" d="M181.41,-215.53C166.89,-207.06 152.12,-195.34 144,-180 136.51,-165.86 139.64,-159.39 144,-144 154.67,-106.33 180.26,-68.86 199.02,-44.92"/>
|
123
|
+
<polygon fill="black" stroke="black" points="201.6,-47.29 205.13,-37.31 196.14,-42.91 201.6,-47.29"/>
|
124
|
+
</g>
|
125
|
+
<!-- 6->5 -->
|
126
|
+
<g id="edge12" class="edge">
|
127
|
+
<title>6->5</title>
|
128
|
+
<path fill="none" stroke="black" d="M221.75,-215.7C221.65,-208.41 221.52,-199.73 221.41,-191.54"/>
|
129
|
+
<polygon fill="black" stroke="black" points="224.91,-191.57 221.27,-181.62 217.91,-191.67 224.91,-191.57"/>
|
143
130
|
</g>
|
144
|
-
<!--
|
131
|
+
<!-- 7->0 -->
|
145
132
|
<g id="edge16" class="edge">
|
146
|
-
<title>
|
147
|
-
<path fill="none" stroke="black" d="
|
148
|
-
<polygon fill="black" stroke="black" points="
|
133
|
+
<title>7->0</title>
|
134
|
+
<path fill="none" stroke="black" d="M294.08,-324.26C279.5,-333.23 260.5,-344.31 243.14,-354"/>
|
135
|
+
<polygon fill="black" stroke="black" points="241.54,-350.89 234.48,-358.78 244.93,-357.01 241.54,-350.89"/>
|
149
136
|
</g>
|
150
|
-
<!--
|
151
|
-
<g id="
|
152
|
-
<title>
|
153
|
-
<path fill="none" stroke="black" d="
|
154
|
-
<polygon fill="black" stroke="black" points="
|
137
|
+
<!-- 7->3 -->
|
138
|
+
<g id="edge14" class="edge">
|
139
|
+
<title>7->3</title>
|
140
|
+
<path fill="none" stroke="black" d="M318.57,-287.61C319.46,-258.08 320.99,-196.26 320,-144 319.85,-136.05 319.57,-127.44 319.27,-119.51"/>
|
141
|
+
<polygon fill="black" stroke="black" points="322.78,-119.54 318.87,-109.69 315.78,-119.83 322.78,-119.54"/>
|
155
142
|
</g>
|
156
|
-
<!--
|
157
|
-
<g id="
|
158
|
-
<title>
|
159
|
-
<path fill="none" stroke="black" d="
|
160
|
-
<polygon fill="black" stroke="black" points="
|
143
|
+
<!-- 7->4 -->
|
144
|
+
<g id="edge18" class="edge">
|
145
|
+
<title>7->4</title>
|
146
|
+
<path fill="none" stroke="black" d="M331.1,-287.73C360.65,-246.5 426.21,-140.69 377,-72 361.19,-49.92 335.65,-36.93 309.77,-29.32"/>
|
147
|
+
<polygon fill="black" stroke="black" points="310.71,-25.95 300.15,-26.77 308.92,-32.72 310.71,-25.95"/>
|
161
148
|
</g>
|
162
|
-
<!--
|
149
|
+
<!-- 7->5 -->
|
163
150
|
<g id="edge17" class="edge">
|
164
|
-
<title>
|
165
|
-
<path fill="none" stroke="black" d="
|
166
|
-
<polygon fill="black" stroke="black" points="
|
167
|
-
</g>
|
168
|
-
<!--
|
169
|
-
<g id="
|
170
|
-
<title>
|
171
|
-
<path fill="none" stroke="black" d="
|
172
|
-
<polygon fill="black" stroke="black" points="
|
173
|
-
</g>
|
174
|
-
<!-- 9->7 -->
|
175
|
-
<g id="edge20" class="edge">
|
176
|
-
<title>9->7</title>
|
177
|
-
<path fill="none" stroke="black" d="M297.75,-287.87C277.81,-263.03 240.73,-216.85 217.68,-188.14"/>
|
178
|
-
<polygon fill="black" stroke="black" points="220.29,-185.8 211.3,-180.19 214.83,-190.18 220.29,-185.8"/>
|
179
|
-
</g>
|
180
|
-
<!-- 9->8 -->
|
181
|
-
<g id="edge18" class="edge">
|
182
|
-
<title>9->8</title>
|
183
|
-
<path fill="none" stroke="black" d="M334.74,-287.7C346.69,-278.8 361.42,-267.82 374.35,-258.2"/>
|
184
|
-
<polygon fill="black" stroke="black" points="376.6,-260.88 382.53,-252.1 372.42,-255.27 376.6,-260.88"/>
|
151
|
+
<title>7->5</title>
|
152
|
+
<path fill="none" stroke="black" d="M311.96,-287.6C304.98,-268.89 292.34,-238.77 276,-216 268.79,-205.96 259.54,-196.2 250.69,-187.86"/>
|
153
|
+
<polygon fill="black" stroke="black" points="253.28,-185.48 243.53,-181.34 248.57,-190.66 253.28,-185.48"/>
|
154
|
+
</g>
|
155
|
+
<!-- 7->6 -->
|
156
|
+
<g id="edge15" class="edge">
|
157
|
+
<title>7->6</title>
|
158
|
+
<path fill="none" stroke="black" d="M294.27,-287.7C282.38,-279.03 267.81,-268.4 254.86,-258.96"/>
|
159
|
+
<polygon fill="black" stroke="black" points="257.16,-256.3 247.01,-253.24 253.03,-261.96 257.16,-256.3"/>
|
185
160
|
</g>
|
186
161
|
</g>
|
187
162
|
</svg>
|
@@ -132,17 +132,17 @@ use syn::{
|
|
132
132
|
/// The macro will generate a few things:
|
133
133
|
/// * A struct for the overall state machine, named with the provided name. Here:
|
134
134
|
/// ```text
|
135
|
-
/// struct
|
136
|
-
/// state:
|
137
|
-
/// shared_state:
|
135
|
+
/// struct CardReader {
|
136
|
+
/// state: CardReaderState,
|
137
|
+
/// shared_state: SharedState,
|
138
138
|
/// }
|
139
139
|
/// ```
|
140
140
|
/// * An enum with a variant for each state, named with the provided name + "State".
|
141
141
|
/// ```text
|
142
|
-
/// enum
|
142
|
+
/// enum CardReaderState {
|
143
143
|
/// Locked(Locked),
|
144
144
|
/// ReadingCard(ReadingCard),
|
145
|
-
///
|
145
|
+
/// DoorOpen(DoorOpen),
|
146
146
|
/// }
|
147
147
|
/// ```
|
148
148
|
///
|
@@ -154,15 +154,18 @@ use syn::{
|
|
154
154
|
/// * An enum with a variant for each event. You are expected to define the type (if any) contained
|
155
155
|
/// in the event variant.
|
156
156
|
/// ```text
|
157
|
-
/// enum
|
158
|
-
///
|
157
|
+
/// enum CardReaderEvents {
|
158
|
+
/// DoorClosed,
|
159
|
+
/// CardAccepted,
|
160
|
+
/// CardRejected,
|
161
|
+
/// CardReadable(CardData),
|
159
162
|
/// }
|
160
163
|
/// ```
|
161
164
|
/// * An implementation of the [StateMachine](trait.StateMachine.html) trait for the generated state
|
162
|
-
/// machine enum (in this case, `
|
165
|
+
/// machine enum (in this case, `CardReader`)
|
163
166
|
/// * A type alias for a [TransitionResult](enum.TransitionResult.html) with the appropriate generic
|
164
167
|
/// parameters set for your machine. It is named as your machine with `Transition` appended. In
|
165
|
-
/// this case, `
|
168
|
+
/// this case, `CardReaderTransition`.
|
166
169
|
#[proc_macro]
|
167
170
|
pub fn fsm(input: TokenStream) -> TokenStream {
|
168
171
|
let def: StateMachineDefinition = parse_macro_input!(input as StateMachineDefinition);
|
@@ -346,12 +349,12 @@ impl StateMachineDefinition {
|
|
346
349
|
let name = &self.name;
|
347
350
|
let name_str = &self.name.to_string();
|
348
351
|
|
349
|
-
let transition_result_name = Ident::new(&format!("{}Transition"
|
352
|
+
let transition_result_name = Ident::new(&format!("{name}Transition"), name.span());
|
350
353
|
let transition_type_alias = quote! {
|
351
354
|
type #transition_result_name<Ds, Sm = #name> = TransitionResult<Sm, Ds>;
|
352
355
|
};
|
353
356
|
|
354
|
-
let state_enum_name = Ident::new(&format!("{}State"
|
357
|
+
let state_enum_name = Ident::new(&format!("{name}State"), name.span());
|
355
358
|
// If user has not defined any shared state, use the unit type.
|
356
359
|
let shared_state_type = self
|
357
360
|
.shared_state_type
|
@@ -390,7 +393,7 @@ impl StateMachineDefinition {
|
|
390
393
|
|
391
394
|
// Build the events enum
|
392
395
|
let events: HashSet<Variant> = self.transitions.iter().map(|t| t.event.clone()).collect();
|
393
|
-
let events_enum_name = Ident::new(&format!("{}Events"
|
396
|
+
let events_enum_name = Ident::new(&format!("{name}Events"), name.span());
|
394
397
|
let events: Vec<_> = events
|
395
398
|
.into_iter()
|
396
399
|
.map(|v| {
|
@@ -616,11 +619,11 @@ impl StateMachineDefinition {
|
|
616
619
|
self.all_states()
|
617
620
|
.iter()
|
618
621
|
.filter(|s| self.is_final_state(s))
|
619
|
-
.map(|s| format!("{} --> [*]"
|
622
|
+
.map(|s| format!("{s} --> [*]")),
|
620
623
|
)
|
621
624
|
.collect();
|
622
625
|
let transitions = transitions.join("\n");
|
623
|
-
format!("@startuml\n{}\n@enduml"
|
626
|
+
format!("@startuml\n{transitions}\n@enduml")
|
624
627
|
}
|
625
628
|
}
|
626
629
|
|
@@ -643,5 +646,5 @@ fn merge_transition_dests(transitions: Vec<Transition>) -> Vec<Transition> {
|
|
643
646
|
}
|
644
647
|
}
|
645
648
|
}
|
646
|
-
map.
|
649
|
+
map.into_values().collect()
|
647
650
|
}
|
@@ -4,7 +4,7 @@ error[E0277]: the trait bound `One: From<Two>` is not satisfied
|
|
4
4
|
11 | Two --(B)--> One;
|
5
5
|
| ^^^ the trait `From<Two>` is not implemented for `One`
|
6
6
|
|
|
7
|
-
= note: required
|
7
|
+
= note: required for `Two` to implement `Into<One>`
|
8
8
|
note: required by a bound in `TransitionResult::<Sm, Ds>::from`
|
9
9
|
--> $WORKSPACE/fsm/rustfsm_trait/src/lib.rs
|
10
10
|
|
|
@@ -34,6 +34,7 @@ pub trait StateMachine: Sized {
|
|
34
34
|
where
|
35
35
|
Self: Clone,
|
36
36
|
{
|
37
|
+
// TODO: Get rid of this clone. It's pointless.
|
37
38
|
// NOTE: This clone is actually nice in some sense, giving us a kind of transactionality.
|
38
39
|
// However if there are really big things in state it could be an issue.
|
39
40
|
let res = self.clone().on_event(event);
|
@@ -207,10 +208,14 @@ where
|
|
207
208
|
new_state: Ds::default(),
|
208
209
|
}
|
209
210
|
}
|
211
|
+
}
|
210
212
|
|
211
|
-
|
212
|
-
|
213
|
-
|
213
|
+
impl<Sm, Ds> Default for TransitionResult<Sm, Ds>
|
214
|
+
where
|
215
|
+
Sm: StateMachine,
|
216
|
+
Ds: Into<Sm::State> + Default,
|
217
|
+
{
|
218
|
+
fn default() -> Self {
|
214
219
|
Self::OkNoShare {
|
215
220
|
commands: vec![],
|
216
221
|
new_state: Ds::default(),
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,5 @@
|
|
1
|
+
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
2
|
+
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
3
|
+
github.com/temporalio/gogo-protobuf v1.22.1 h1:K5ja5MqmCQKo4tlX7u3g+ZJqbvRr0589ss2cZQx2dSM=
|
4
|
+
github.com/temporalio/gogo-protobuf v1.22.1/go.mod h1:tCaEv+fB8tsyLgoaqKr78K/JOhdRe684yyo0z30SHyA=
|
5
|
+
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
data/bridge/sdk-core/protos/api_upstream/{temporal/api/enums/v1/cluster.proto → build/tools.go}
RENAMED
@@ -1,6 +1,8 @@
|
|
1
1
|
// The MIT License
|
2
2
|
//
|
3
|
-
// Copyright (c)
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Copyright (c) 2020 Uber Technologies, Inc.
|
4
6
|
//
|
5
7
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
8
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -20,21 +22,8 @@
|
|
20
22
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
23
|
// THE SOFTWARE.
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
package temporal.api.enums.v1;
|
26
|
-
|
27
|
-
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
-
option java_package = "io.temporal.api.enums.v1";
|
29
|
-
option java_multiple_files = true;
|
30
|
-
option java_outer_classname = "ClusterProto";
|
31
|
-
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
-
option csharp_namespace = "Temporal.Api.Enums.V1";
|
25
|
+
package build
|
33
26
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
CLUSTER_MEMBER_ROLE_HISTORY = 2;
|
38
|
-
CLUSTER_MEMBER_ROLE_MATCHING = 3;
|
39
|
-
CLUSTER_MEMBER_ROLE_WORKER = 4;
|
40
|
-
}
|
27
|
+
import (
|
28
|
+
_ "github.com/temporalio/gogo-protobuf/gogoproto" // gogoproto is just a random package name for module.
|
29
|
+
)
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/batch/v1;batch";
|
|
28
28
|
option java_package = "io.temporal.api.batch.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::Batch::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Batch.V1";
|
33
33
|
|
34
34
|
import "dependencies/gogoproto/gogo.proto";
|
35
35
|
import "google/protobuf/timestamp.proto";
|
@@ -53,12 +53,10 @@ message BatchOperationInfo {
|
|
53
53
|
// Keep the parameter in sync with temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest.
|
54
54
|
// Ignore first_execution_run_id because this is used for single workflow operation.
|
55
55
|
message BatchOperationTermination {
|
56
|
-
// Reason of terminate workflows
|
57
|
-
string reason = 1;
|
58
56
|
// Serialized value(s) to provide to the termination event
|
59
|
-
temporal.api.common.v1.Payloads details =
|
57
|
+
temporal.api.common.v1.Payloads details = 1;
|
60
58
|
// The identity of the worker/client
|
61
|
-
string identity =
|
59
|
+
string identity = 2;
|
62
60
|
}
|
63
61
|
|
64
62
|
// BatchOperationSignal sends signals to batch workflows.
|
@@ -79,8 +77,13 @@ message BatchOperationSignal {
|
|
79
77
|
// Keep the parameter in sync with temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest.
|
80
78
|
// Ignore first_execution_run_id because this is used for single workflow operation.
|
81
79
|
message BatchOperationCancellation {
|
82
|
-
// Reason of cancel workflows
|
83
|
-
string reason = 1;
|
84
80
|
// The identity of the worker/client
|
85
|
-
string identity =
|
81
|
+
string identity = 1;
|
82
|
+
}
|
83
|
+
|
84
|
+
// BatchOperationDeletion sends deletion requests to batch workflows.
|
85
|
+
// Keep the parameter in sync with temporal.api.workflowservice.v1.DeleteWorkflowExecutionRequest.
|
86
|
+
message BatchOperationDeletion {
|
87
|
+
// The identity of the worker/client
|
88
|
+
string identity = 1;
|
86
89
|
}
|