temporalio 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/Cargo.lock +4324 -0
  4. data/Cargo.toml +25 -0
  5. data/Gemfile +20 -0
  6. data/LICENSE +16 -15
  7. data/README.md +985 -183
  8. data/Rakefile +101 -0
  9. data/ext/Cargo.toml +26 -0
  10. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  11. data/lib/temporalio/activity/context.rb +86 -78
  12. data/lib/temporalio/activity/definition.rb +175 -0
  13. data/lib/temporalio/activity/info.rb +44 -47
  14. data/lib/temporalio/activity.rb +8 -81
  15. data/lib/temporalio/api/activity/v1/message.rb +25 -0
  16. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  17. data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
  18. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +126 -0
  19. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  20. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  21. data/lib/temporalio/api/cloud/identity/v1/message.rb +41 -0
  22. data/lib/temporalio/api/cloud/namespace/v1/message.rb +42 -0
  23. data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
  24. data/lib/temporalio/api/cloud/operation/v1/message.rb +28 -0
  25. data/lib/temporalio/api/cloud/region/v1/message.rb +24 -0
  26. data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
  27. data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
  28. data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
  29. data/lib/temporalio/api/command/v1/message.rb +46 -0
  30. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  31. data/lib/temporalio/api/common/v1/message.rb +47 -0
  32. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  33. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  35. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  36. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  37. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  38. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  39. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  40. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  41. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  42. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  43. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  44. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  45. data/lib/temporalio/api/export/v1/message.rb +24 -0
  46. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  47. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  48. data/lib/temporalio/api/history/v1/message.rb +90 -0
  49. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  50. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  51. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  52. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  53. data/lib/temporalio/api/operatorservice.rb +3 -0
  54. data/lib/temporalio/api/payload_visitor.rb +1513 -0
  55. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  56. data/lib/temporalio/api/query/v1/message.rb +27 -0
  57. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  58. data/lib/temporalio/api/schedule/v1/message.rb +43 -0
  59. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  60. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  61. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  62. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  63. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  64. data/lib/{gen/temporal/api/testservice/v1/request_response_pb.rb → temporalio/api/testservice/v1/request_response.rb} +6 -24
  65. data/lib/temporalio/api/testservice/v1/service.rb +23 -0
  66. data/lib/temporalio/api/update/v1/message.rb +33 -0
  67. data/lib/temporalio/api/version/v1/message.rb +26 -0
  68. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  69. data/lib/temporalio/api/workflowservice/v1/request_response.rb +204 -0
  70. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  71. data/lib/temporalio/api/workflowservice.rb +3 -0
  72. data/lib/temporalio/api.rb +14 -0
  73. data/lib/temporalio/cancellation.rb +170 -0
  74. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  75. data/lib/temporalio/client/async_activity_handle.rb +85 -0
  76. data/lib/temporalio/client/connection/cloud_service.rb +726 -0
  77. data/lib/temporalio/client/connection/operator_service.rb +201 -0
  78. data/lib/temporalio/client/connection/service.rb +42 -0
  79. data/lib/temporalio/client/connection/test_service.rb +111 -0
  80. data/lib/temporalio/client/connection/workflow_service.rb +1041 -0
  81. data/lib/temporalio/client/connection.rb +316 -0
  82. data/lib/temporalio/client/interceptor.rb +416 -0
  83. data/lib/temporalio/client/schedule.rb +967 -0
  84. data/lib/temporalio/client/schedule_handle.rb +126 -0
  85. data/lib/temporalio/client/workflow_execution.rb +100 -0
  86. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  87. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  88. data/lib/temporalio/client/workflow_handle.rb +326 -180
  89. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  90. data/lib/temporalio/client/workflow_update_handle.rb +65 -0
  91. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  92. data/lib/temporalio/client.rb +447 -94
  93. data/lib/temporalio/common_enums.rb +41 -0
  94. data/lib/temporalio/converters/data_converter.rb +99 -0
  95. data/lib/temporalio/converters/failure_converter.rb +202 -0
  96. data/lib/temporalio/converters/payload_codec.rb +26 -0
  97. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  98. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  99. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  100. data/lib/temporalio/converters/payload_converter/composite.rb +66 -0
  101. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  102. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  103. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  104. data/lib/temporalio/converters/payload_converter.rb +71 -0
  105. data/lib/temporalio/converters/raw_value.rb +20 -0
  106. data/lib/temporalio/converters.rb +9 -0
  107. data/lib/temporalio/error/failure.rb +119 -94
  108. data/lib/temporalio/error.rb +155 -0
  109. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  110. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  111. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  112. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  113. data/lib/temporalio/internal/bridge/api/core_interface.rb +40 -0
  114. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  115. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
  116. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +56 -0
  117. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +57 -0
  118. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  119. data/lib/temporalio/internal/bridge/api.rb +3 -0
  120. data/lib/temporalio/internal/bridge/client.rb +95 -0
  121. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  122. data/lib/temporalio/internal/bridge/testing.rb +66 -0
  123. data/lib/temporalio/internal/bridge/worker.rb +85 -0
  124. data/lib/temporalio/internal/bridge.rb +36 -0
  125. data/lib/temporalio/internal/client/implementation.rb +700 -0
  126. data/lib/temporalio/internal/metric.rb +122 -0
  127. data/lib/temporalio/internal/proto_utils.rb +133 -0
  128. data/lib/temporalio/internal/worker/activity_worker.rb +373 -0
  129. data/lib/temporalio/internal/worker/multi_runner.rb +213 -0
  130. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
  131. data/lib/temporalio/internal/worker/workflow_instance/context.rb +329 -0
  132. data/lib/temporalio/internal/worker/workflow_instance/details.rb +44 -0
  133. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
  134. data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
  135. data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
  136. data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
  137. data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
  138. data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
  139. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +415 -0
  140. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
  141. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
  142. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +163 -0
  143. data/lib/temporalio/internal/worker/workflow_instance.rb +730 -0
  144. data/lib/temporalio/internal/worker/workflow_worker.rb +196 -0
  145. data/lib/temporalio/internal.rb +7 -0
  146. data/lib/temporalio/metric.rb +109 -0
  147. data/lib/temporalio/retry_policy.rb +55 -73
  148. data/lib/temporalio/runtime.rb +302 -13
  149. data/lib/temporalio/scoped_logger.rb +96 -0
  150. data/lib/temporalio/search_attributes.rb +343 -0
  151. data/lib/temporalio/testing/activity_environment.rb +132 -0
  152. data/lib/temporalio/testing/workflow_environment.rb +345 -74
  153. data/lib/temporalio/testing.rb +4 -169
  154. data/lib/temporalio/version.rb +3 -1
  155. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  156. data/lib/temporalio/worker/activity_executor/thread_pool.rb +46 -0
  157. data/lib/temporalio/worker/activity_executor.rb +55 -0
  158. data/lib/temporalio/worker/interceptor.rb +362 -0
  159. data/lib/temporalio/worker/thread_pool.rb +237 -0
  160. data/lib/temporalio/worker/tuner.rb +151 -0
  161. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +230 -0
  162. data/lib/temporalio/worker/workflow_executor.rb +26 -0
  163. data/lib/temporalio/worker.rb +554 -161
  164. data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
  165. data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
  166. data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
  167. data/lib/temporalio/workflow/definition.rb +566 -0
  168. data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
  169. data/lib/temporalio/workflow/future.rb +117 -104
  170. data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
  171. data/lib/temporalio/workflow/info.rb +63 -57
  172. data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
  173. data/lib/temporalio/workflow/update_info.rb +20 -0
  174. data/lib/temporalio/workflow.rb +523 -0
  175. data/lib/temporalio/workflow_history.rb +22 -0
  176. data/lib/temporalio.rb +6 -7
  177. data/temporalio.gemspec +20 -39
  178. metadata +171 -710
  179. data/bridge/Cargo.lock +0 -2997
  180. data/bridge/Cargo.toml +0 -29
  181. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  182. data/bridge/sdk-core/Cargo.toml +0 -2
  183. data/bridge/sdk-core/LICENSE.txt +0 -23
  184. data/bridge/sdk-core/README.md +0 -117
  185. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  186. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  187. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  188. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  189. data/bridge/sdk-core/client/Cargo.toml +0 -40
  190. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  191. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  192. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  193. data/bridge/sdk-core/client/src/raw.rs +0 -932
  194. data/bridge/sdk-core/client/src/retry.rs +0 -763
  195. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  196. data/bridge/sdk-core/core/Cargo.toml +0 -129
  197. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  198. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  199. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  200. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  201. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  202. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  203. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  204. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  205. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  206. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  207. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  208. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  209. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  210. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  211. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  212. data/bridge/sdk-core/core/src/lib.rs +0 -289
  213. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  214. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  215. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  216. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  217. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  218. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  219. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  220. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  221. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  222. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  223. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  224. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  225. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  226. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  227. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  228. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  229. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  230. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  231. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  232. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  233. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  234. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  235. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  236. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  237. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  238. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  239. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  240. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  241. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  242. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  243. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  244. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  245. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  246. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  247. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  248. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  249. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  250. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  251. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  252. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  253. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  254. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  255. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  256. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  257. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  258. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  259. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  260. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  261. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  262. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  263. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  264. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  265. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  266. data/bridge/sdk-core/etc/deps.svg +0 -162
  267. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  268. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  269. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  270. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  271. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  272. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  273. data/bridge/sdk-core/fsm/README.md +0 -3
  274. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  275. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  276. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  277. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  278. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  279. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  280. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  281. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  282. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  283. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  284. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  285. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  286. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  287. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  288. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  289. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  290. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  291. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  292. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  293. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  294. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  295. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  296. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  297. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  298. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  299. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  300. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  301. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  302. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  303. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  304. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  305. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  306. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  307. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  308. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  309. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  310. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  311. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  312. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  313. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  314. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  315. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  316. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  317. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  318. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  319. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  320. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  321. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  322. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  323. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  324. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  325. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  326. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  327. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  328. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  329. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  330. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  331. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  332. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  333. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  334. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  335. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  336. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  337. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  338. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  339. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  340. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  341. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  342. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  343. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  344. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  345. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  346. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  347. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  348. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  349. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  350. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  351. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  352. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  353. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  354. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  355. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  356. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  357. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  358. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  359. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  360. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  361. data/bridge/sdk-core/rustfmt.toml +0 -1
  362. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  363. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  364. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  365. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  366. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  367. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  368. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  369. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  370. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  371. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  372. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  373. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  374. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  375. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  376. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  377. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  378. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  379. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  380. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  381. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  382. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  383. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  384. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  385. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  386. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  387. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  388. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  389. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  390. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  391. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  392. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  393. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  394. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  395. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  396. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  397. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  398. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  399. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  400. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  401. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  402. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  403. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  404. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  405. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  406. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  407. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  408. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  409. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  410. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  411. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  412. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  413. data/bridge/sdk-core/tests/main.rs +0 -103
  414. data/bridge/sdk-core/tests/runner.rs +0 -132
  415. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  416. data/bridge/src/connection.rs +0 -202
  417. data/bridge/src/lib.rs +0 -494
  418. data/bridge/src/runtime.rs +0 -54
  419. data/bridge/src/test_server.rs +0 -153
  420. data/bridge/src/worker.rs +0 -197
  421. data/ext/Rakefile +0 -9
  422. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  423. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  424. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  425. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  426. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  427. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  428. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  429. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  430. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  431. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  432. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  433. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  434. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  435. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  436. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  437. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  438. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  439. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  440. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  441. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  442. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  443. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  444. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  445. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  446. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  447. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  448. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  449. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  450. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  451. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  452. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  453. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  454. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  455. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  456. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  457. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  458. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  459. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  460. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  461. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  462. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  463. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  464. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  465. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  466. data/lib/temporalio/bridge/connect_options.rb +0 -15
  467. data/lib/temporalio/bridge/error.rb +0 -8
  468. data/lib/temporalio/bridge/retry_config.rb +0 -24
  469. data/lib/temporalio/bridge/tls_options.rb +0 -19
  470. data/lib/temporalio/bridge.rb +0 -14
  471. data/lib/temporalio/client/implementation.rb +0 -340
  472. data/lib/temporalio/connection/retry_config.rb +0 -44
  473. data/lib/temporalio/connection/service.rb +0 -20
  474. data/lib/temporalio/connection/test_service.rb +0 -92
  475. data/lib/temporalio/connection/tls_options.rb +0 -51
  476. data/lib/temporalio/connection/workflow_service.rb +0 -731
  477. data/lib/temporalio/connection.rb +0 -86
  478. data/lib/temporalio/data_converter.rb +0 -191
  479. data/lib/temporalio/error/workflow_failure.rb +0 -19
  480. data/lib/temporalio/errors.rb +0 -40
  481. data/lib/temporalio/failure_converter/base.rb +0 -26
  482. data/lib/temporalio/failure_converter/basic.rb +0 -319
  483. data/lib/temporalio/failure_converter.rb +0 -7
  484. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  485. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  486. data/lib/temporalio/interceptor/chain.rb +0 -28
  487. data/lib/temporalio/interceptor/client.rb +0 -127
  488. data/lib/temporalio/interceptor.rb +0 -22
  489. data/lib/temporalio/payload_codec/base.rb +0 -32
  490. data/lib/temporalio/payload_converter/base.rb +0 -24
  491. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  492. data/lib/temporalio/payload_converter/composite.rb +0 -49
  493. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  494. data/lib/temporalio/payload_converter/json.rb +0 -26
  495. data/lib/temporalio/payload_converter/nil.rb +0 -26
  496. data/lib/temporalio/payload_converter.rb +0 -14
  497. data/lib/temporalio/retry_state.rb +0 -35
  498. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  499. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  500. data/lib/temporalio/timeout_type.rb +0 -29
  501. data/lib/temporalio/worker/activity_runner.rb +0 -114
  502. data/lib/temporalio/worker/activity_worker.rb +0 -164
  503. data/lib/temporalio/worker/reactor.rb +0 -46
  504. data/lib/temporalio/worker/runner.rb +0 -63
  505. data/lib/temporalio/worker/sync_worker.rb +0 -124
  506. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  507. data/lib/temporalio/workflow/async.rb +0 -46
  508. data/lib/temporalio/workflow/execution_info.rb +0 -54
  509. data/lib/temporalio/workflow/execution_status.rb +0 -36
  510. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  511. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  512. data/lib/thermite_patch.rb +0 -33
  513. data/sig/async.rbs +0 -17
  514. data/sig/protobuf.rbs +0 -16
  515. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  516. data/sig/protos/google/protobuf/any.rbs +0 -157
  517. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  518. data/sig/protos/google/protobuf/duration.rbs +0 -114
  519. data/sig/protos/google/protobuf/empty.rbs +0 -36
  520. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  521. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  522. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  523. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  524. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  525. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  526. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  527. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  528. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  529. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  530. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  531. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  532. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  533. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  534. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  535. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  536. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  537. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  538. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  539. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  540. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  541. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  542. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  543. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  544. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  545. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  546. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  547. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  548. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  549. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  550. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  551. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  552. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  553. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  554. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  555. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  556. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  557. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  558. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  559. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  560. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  561. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  562. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  563. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  564. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  565. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  566. data/sig/ruby.rbs +0 -12
  567. data/sig/temporalio/activity/context.rbs +0 -29
  568. data/sig/temporalio/activity/info.rbs +0 -43
  569. data/sig/temporalio/activity.rbs +0 -19
  570. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  571. data/sig/temporalio/bridge/error.rbs +0 -8
  572. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  573. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  574. data/sig/temporalio/bridge.rbs +0 -71
  575. data/sig/temporalio/client/implementation.rbs +0 -38
  576. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  577. data/sig/temporalio/client.rbs +0 -35
  578. data/sig/temporalio/connection/retry_config.rbs +0 -37
  579. data/sig/temporalio/connection/service.rbs +0 -14
  580. data/sig/temporalio/connection/test_service.rbs +0 -13
  581. data/sig/temporalio/connection/tls_options.rbs +0 -43
  582. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  583. data/sig/temporalio/connection.rbs +0 -30
  584. data/sig/temporalio/data_converter.rbs +0 -35
  585. data/sig/temporalio/error/failure.rbs +0 -121
  586. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  587. data/sig/temporalio/errors.rbs +0 -36
  588. data/sig/temporalio/failure_converter/base.rbs +0 -12
  589. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  590. data/sig/temporalio/failure_converter.rbs +0 -5
  591. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  592. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  593. data/sig/temporalio/interceptor/chain.rbs +0 -24
  594. data/sig/temporalio/interceptor/client.rbs +0 -148
  595. data/sig/temporalio/interceptor.rbs +0 -6
  596. data/sig/temporalio/payload_codec/base.rbs +0 -12
  597. data/sig/temporalio/payload_converter/base.rbs +0 -12
  598. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  599. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  600. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  601. data/sig/temporalio/payload_converter/json.rbs +0 -9
  602. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  603. data/sig/temporalio/payload_converter.rbs +0 -5
  604. data/sig/temporalio/retry_policy.rbs +0 -25
  605. data/sig/temporalio/retry_state.rbs +0 -20
  606. data/sig/temporalio/runtime.rbs +0 -12
  607. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  608. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  609. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  610. data/sig/temporalio/testing.rbs +0 -35
  611. data/sig/temporalio/timeout_type.rbs +0 -15
  612. data/sig/temporalio/version.rbs +0 -3
  613. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  614. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  615. data/sig/temporalio/worker/reactor.rbs +0 -22
  616. data/sig/temporalio/worker/runner.rbs +0 -21
  617. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  618. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  619. data/sig/temporalio/worker.rbs +0 -46
  620. data/sig/temporalio/workflow/async.rbs +0 -9
  621. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  622. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  623. data/sig/temporalio/workflow/future.rbs +0 -40
  624. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  625. data/sig/temporalio/workflow/info.rbs +0 -55
  626. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  627. data/sig/temporalio.rbs +0 -2
  628. data/sig/thermite_patch.rbs +0 -15
@@ -1,650 +0,0 @@
1
- use proc_macro::TokenStream;
2
- use quote::{quote, quote_spanned};
3
- use std::collections::{hash_map::Entry, HashMap, HashSet};
4
- use syn::{
5
- parenthesized,
6
- parse::{Parse, ParseStream, Result},
7
- parse_macro_input,
8
- punctuated::Punctuated,
9
- spanned::Spanned,
10
- Error, Fields, Ident, Token, Type, Variant, Visibility,
11
- };
12
-
13
- /// Parses a DSL for defining finite state machines, and produces code implementing the
14
- /// [StateMachine](trait.StateMachine.html) trait.
15
- ///
16
- /// An example state machine definition of a card reader for unlocking a door:
17
- /// ```
18
- /// # extern crate rustfsm_trait as rustfsm;
19
- /// use rustfsm_procmacro::fsm;
20
- /// use std::convert::Infallible;
21
- /// use rustfsm_trait::{StateMachine, TransitionResult};
22
- ///
23
- /// fsm! {
24
- /// name CardReader; command Commands; error Infallible; shared_state SharedState;
25
- ///
26
- /// Locked --(CardReadable(CardData), shared on_card_readable) --> ReadingCard;
27
- /// Locked --(CardReadable(CardData), shared on_card_readable) --> Locked;
28
- /// ReadingCard --(CardAccepted, on_card_accepted) --> DoorOpen;
29
- /// ReadingCard --(CardRejected, on_card_rejected) --> Locked;
30
- /// DoorOpen --(DoorClosed, on_door_closed) --> Locked;
31
- /// }
32
- ///
33
- /// #[derive(Clone)]
34
- /// pub struct SharedState {
35
- /// last_id: Option<String>
36
- /// }
37
- ///
38
- /// #[derive(Debug, Clone, Eq, PartialEq, Hash)]
39
- /// pub enum Commands {
40
- /// StartBlinkingLight,
41
- /// StopBlinkingLight,
42
- /// ProcessData(CardData),
43
- /// }
44
- ///
45
- /// type CardData = String;
46
- ///
47
- /// /// Door is locked / idle / we are ready to read
48
- /// #[derive(Debug, Clone, Eq, PartialEq, Hash, Default)]
49
- /// pub struct Locked {}
50
- ///
51
- /// /// Actively reading the card
52
- /// #[derive(Debug, Clone, Eq, PartialEq, Hash)]
53
- /// pub struct ReadingCard {
54
- /// card_data: CardData,
55
- /// }
56
- ///
57
- /// /// The door is open, we shouldn't be accepting cards and should be blinking the light
58
- /// #[derive(Debug, Clone, Eq, PartialEq, Hash)]
59
- /// pub struct DoorOpen {}
60
- /// impl DoorOpen {
61
- /// fn on_door_closed(&self) -> CardReaderTransition<Locked> {
62
- /// TransitionResult::ok(vec![], Locked {})
63
- /// }
64
- /// }
65
- ///
66
- /// impl Locked {
67
- /// fn on_card_readable(&self, shared_dat: SharedState, data: CardData)
68
- /// -> CardReaderTransition<ReadingCardOrLocked> {
69
- /// match shared_dat.last_id {
70
- /// // Arbitrarily deny the same person entering twice in a row
71
- /// Some(d) if d == data => TransitionResult::ok(vec![], Locked {}.into()),
72
- /// _ => {
73
- /// // Otherwise issue a processing command. This illustrates using the same handler
74
- /// // for different destinations
75
- /// TransitionResult::ok_shared(
76
- /// vec![
77
- /// Commands::ProcessData(data.clone()),
78
- /// Commands::StartBlinkingLight,
79
- /// ],
80
- /// ReadingCard { card_data: data.clone() }.into(),
81
- /// SharedState { last_id: Some(data) }
82
- /// )
83
- /// }
84
- /// }
85
- /// }
86
- /// }
87
- ///
88
- /// impl ReadingCard {
89
- /// fn on_card_accepted(&self) -> CardReaderTransition<DoorOpen> {
90
- /// TransitionResult::ok(vec![Commands::StopBlinkingLight], DoorOpen {})
91
- /// }
92
- /// fn on_card_rejected(&self) -> CardReaderTransition<Locked> {
93
- /// TransitionResult::ok(vec![Commands::StopBlinkingLight], Locked {})
94
- /// }
95
- /// }
96
- ///
97
- /// # fn main() -> Result<(), Box<dyn std::error::Error>> {
98
- /// let crs = CardReaderState::Locked(Locked {});
99
- /// let mut cr = CardReader { state: crs, shared_state: SharedState { last_id: None } };
100
- /// let cmds = cr.on_event_mut(CardReaderEvents::CardReadable("badguy".to_string()))?;
101
- /// assert_eq!(cmds[0], Commands::ProcessData("badguy".to_string()));
102
- /// assert_eq!(cmds[1], Commands::StartBlinkingLight);
103
- ///
104
- /// let cmds = cr.on_event_mut(CardReaderEvents::CardRejected)?;
105
- /// assert_eq!(cmds[0], Commands::StopBlinkingLight);
106
- ///
107
- /// let cmds = cr.on_event_mut(CardReaderEvents::CardReadable("goodguy".to_string()))?;
108
- /// assert_eq!(cmds[0], Commands::ProcessData("goodguy".to_string()));
109
- /// assert_eq!(cmds[1], Commands::StartBlinkingLight);
110
- ///
111
- /// let cmds = cr.on_event_mut(CardReaderEvents::CardAccepted)?;
112
- /// assert_eq!(cmds[0], Commands::StopBlinkingLight);
113
- /// # Ok(())
114
- /// # }
115
- /// ```
116
- ///
117
- /// In the above example the first word is the name of the state machine, then after the comma the
118
- /// type (which you must define separately) of commands produced by the machine.
119
- ///
120
- /// then each line represents a transition, where the first word is the initial state, the tuple
121
- /// inside the arrow is `(eventtype[, event handler])`, and the word after the arrow is the
122
- /// destination state. here `eventtype` is an enum variant , and `event_handler` is a function you
123
- /// must define outside the enum whose form depends on the event variant. the only variant types
124
- /// allowed are unit and one-item tuple variants. For unit variants, the function takes no
125
- /// parameters. For the tuple variants, the function takes the variant data as its parameter. In
126
- /// either case the function is expected to return a `TransitionResult` to the appropriate state.
127
- ///
128
- /// The first transition can be interpreted as "If the machine is in the locked state, when a
129
- /// `CardReadable` event is seen, call `on_card_readable` (passing in `CardData`) and transition to
130
- /// the `ReadingCard` state.
131
- ///
132
- /// The macro will generate a few things:
133
- /// * A struct for the overall state machine, named with the provided name. Here:
134
- /// ```text
135
- /// struct CardReader {
136
- /// state: CardReaderState,
137
- /// shared_state: SharedState,
138
- /// }
139
- /// ```
140
- /// * An enum with a variant for each state, named with the provided name + "State".
141
- /// ```text
142
- /// enum CardReaderState {
143
- /// Locked(Locked),
144
- /// ReadingCard(ReadingCard),
145
- /// DoorOpen(DoorOpen),
146
- /// }
147
- /// ```
148
- ///
149
- /// You are expected to define a type for each state, to contain that state's data. If there is
150
- /// no data, you can simply: `type StateName = ()`
151
- /// * For any instance of transitions with the same event/handler which transition to different
152
- /// destination states (dynamic destinations), an enum named like `DestAOrDestBOrDestC` is
153
- /// generated. This enum must be used as the destination "state" from those handlers.
154
- /// * An enum with a variant for each event. You are expected to define the type (if any) contained
155
- /// in the event variant.
156
- /// ```text
157
- /// enum CardReaderEvents {
158
- /// DoorClosed,
159
- /// CardAccepted,
160
- /// CardRejected,
161
- /// CardReadable(CardData),
162
- /// }
163
- /// ```
164
- /// * An implementation of the [StateMachine](trait.StateMachine.html) trait for the generated state
165
- /// machine enum (in this case, `CardReader`)
166
- /// * A type alias for a [TransitionResult](enum.TransitionResult.html) with the appropriate generic
167
- /// parameters set for your machine. It is named as your machine with `Transition` appended. In
168
- /// this case, `CardReaderTransition`.
169
- #[proc_macro]
170
- pub fn fsm(input: TokenStream) -> TokenStream {
171
- let def: StateMachineDefinition = parse_macro_input!(input as StateMachineDefinition);
172
- def.codegen()
173
- }
174
-
175
- mod kw {
176
- syn::custom_keyword!(name);
177
- syn::custom_keyword!(command);
178
- syn::custom_keyword!(error);
179
- syn::custom_keyword!(shared);
180
- syn::custom_keyword!(shared_state);
181
- }
182
-
183
- struct StateMachineDefinition {
184
- visibility: Visibility,
185
- name: Ident,
186
- shared_state_type: Option<Type>,
187
- command_type: Ident,
188
- error_type: Ident,
189
- transitions: Vec<Transition>,
190
- }
191
-
192
- impl StateMachineDefinition {
193
- fn is_final_state(&self, state: &Ident) -> bool {
194
- // If no transitions go from this state, it's a final state.
195
- !self.transitions.iter().any(|t| t.from == *state)
196
- }
197
- }
198
-
199
- impl Parse for StateMachineDefinition {
200
- fn parse(input: ParseStream) -> Result<Self> {
201
- // Parse visibility if present
202
- let visibility = input.parse()?;
203
- // parse the state machine name, command type, and error type
204
- let (name, command_type, error_type, shared_state_type) = parse_machine_types(input)
205
- .map_err(|mut e| {
206
- e.combine(Error::new(
207
- e.span(),
208
- "The fsm definition should begin with `name MachineName; command CommandType; \
209
- error ErrorType;` optionally followed by `shared_state SharedStateType;`",
210
- ));
211
- e
212
- })?;
213
- // Then the state machine definition is simply a sequence of transitions separated by
214
- // semicolons
215
- let transitions: Punctuated<Transition, Token![;]> =
216
- input.parse_terminated(Transition::parse)?;
217
- let transitions: Vec<_> = transitions.into_iter().collect();
218
- // Check for and whine about any identical transitions. We do this here because preserving
219
- // the order transitions were defined in is important, so simply collecting to a set is
220
- // not ideal.
221
- let trans_set: HashSet<_> = transitions.iter().collect();
222
- if trans_set.len() != transitions.len() {
223
- return Err(syn::Error::new(
224
- input.span(),
225
- "Duplicate transitions are not allowed!",
226
- ));
227
- }
228
- Ok(Self {
229
- visibility,
230
- name,
231
- shared_state_type,
232
- command_type,
233
- error_type,
234
- transitions,
235
- })
236
- }
237
- }
238
-
239
- fn parse_machine_types(input: ParseStream) -> Result<(Ident, Ident, Ident, Option<Type>)> {
240
- let _: kw::name = input.parse()?;
241
- let name: Ident = input.parse()?;
242
- input.parse::<Token![;]>()?;
243
-
244
- let _: kw::command = input.parse()?;
245
- let command_type: Ident = input.parse()?;
246
- input.parse::<Token![;]>()?;
247
-
248
- let _: kw::error = input.parse()?;
249
- let error_type: Ident = input.parse()?;
250
- input.parse::<Token![;]>()?;
251
-
252
- let shared_state_type: Option<Type> = if input.peek(kw::shared_state) {
253
- let _: kw::shared_state = input.parse()?;
254
- let typep = input.parse()?;
255
- input.parse::<Token![;]>()?;
256
- Some(typep)
257
- } else {
258
- None
259
- };
260
- Ok((name, command_type, error_type, shared_state_type))
261
- }
262
-
263
- #[derive(Debug, Clone, Eq, PartialEq, Hash)]
264
- struct Transition {
265
- from: Ident,
266
- to: Vec<Ident>,
267
- event: Variant,
268
- handler: Option<Ident>,
269
- mutates_shared: bool,
270
- }
271
-
272
- impl Parse for Transition {
273
- fn parse(input: ParseStream) -> Result<Self> {
274
- // Parse the initial state name
275
- let from: Ident = input.parse()?;
276
- // Parse at least one dash
277
- input.parse::<Token![-]>()?;
278
- while input.peek(Token![-]) {
279
- input.parse::<Token![-]>()?;
280
- }
281
- // Parse transition information inside parens
282
- let transition_info;
283
- parenthesized!(transition_info in input);
284
- // Get the event variant definition
285
- let event: Variant = transition_info.parse()?;
286
- // Reject non-unit or single-item-tuple variants
287
- match &event.fields {
288
- Fields::Named(_) => {
289
- return Err(Error::new(
290
- event.span(),
291
- "Struct variants are not supported for events",
292
- ))
293
- }
294
- Fields::Unnamed(uf) => {
295
- if uf.unnamed.len() != 1 {
296
- return Err(Error::new(
297
- event.span(),
298
- "Only tuple variants with exactly one item are supported for events",
299
- ));
300
- }
301
- }
302
- Fields::Unit => {}
303
- }
304
- // Check if there is an event handler, and parse it
305
- let (mutates_shared, handler) = if transition_info.peek(Token![,]) {
306
- transition_info.parse::<Token![,]>()?;
307
- // Check for mut keyword signifying handler wants to mutate shared state
308
- let mutates = if transition_info.peek(kw::shared) {
309
- transition_info.parse::<kw::shared>()?;
310
- true
311
- } else {
312
- false
313
- };
314
- (mutates, Some(transition_info.parse()?))
315
- } else {
316
- (false, None)
317
- };
318
- // Parse at least one dash followed by the "arrow"
319
- input.parse::<Token![-]>()?;
320
- while input.peek(Token![-]) {
321
- input.parse::<Token![-]>()?;
322
- }
323
- input.parse::<Token![>]>()?;
324
- // Parse the destination state
325
- let to: Ident = input.parse()?;
326
-
327
- Ok(Self {
328
- from,
329
- event,
330
- handler,
331
- to: vec![to],
332
- mutates_shared,
333
- })
334
- }
335
- }
336
-
337
- impl StateMachineDefinition {
338
- fn codegen(&self) -> TokenStream {
339
- let visibility = self.visibility.clone();
340
- // First extract all of the states into a set, and build the enum's insides
341
- let states = self.all_states();
342
- let state_variants = states.iter().map(|s| {
343
- let statestr = s.to_string();
344
- quote! {
345
- #[display(fmt=#statestr)]
346
- #s(#s)
347
- }
348
- });
349
- let name = &self.name;
350
- let name_str = &self.name.to_string();
351
-
352
- let transition_result_name = Ident::new(&format!("{name}Transition"), name.span());
353
- let transition_type_alias = quote! {
354
- type #transition_result_name<Ds, Sm = #name> = TransitionResult<Sm, Ds>;
355
- };
356
-
357
- let state_enum_name = Ident::new(&format!("{name}State"), name.span());
358
- // If user has not defined any shared state, use the unit type.
359
- let shared_state_type = self
360
- .shared_state_type
361
- .clone()
362
- .unwrap_or_else(|| syn::parse_str("()").unwrap());
363
- let machine_struct = quote! {
364
- #[derive(Clone)]
365
- #visibility struct #name {
366
- state: #state_enum_name,
367
- shared_state: #shared_state_type
368
- }
369
- };
370
- let states_enum = quote! {
371
- #[derive(::derive_more::From, Clone, ::derive_more::Display)]
372
- #visibility enum #state_enum_name {
373
- #(#state_variants),*
374
- }
375
- };
376
- let state_is_final_match_arms = states.iter().map(|s| {
377
- let val = if self.is_final_state(s) {
378
- quote! { true }
379
- } else {
380
- quote! { false }
381
- };
382
- quote! { #state_enum_name::#s(_) => #val }
383
- });
384
- let states_enum_impl = quote! {
385
- impl #state_enum_name {
386
- fn is_final(&self) -> bool {
387
- match self {
388
- #(#state_is_final_match_arms),*
389
- }
390
- }
391
- }
392
- };
393
-
394
- // Build the events enum
395
- let events: HashSet<Variant> = self.transitions.iter().map(|t| t.event.clone()).collect();
396
- let events_enum_name = Ident::new(&format!("{name}Events"), name.span());
397
- let events: Vec<_> = events
398
- .into_iter()
399
- .map(|v| {
400
- let vname = v.ident.to_string();
401
- quote! {
402
- #[display(fmt=#vname)]
403
- #v
404
- }
405
- })
406
- .collect();
407
- let events_enum = quote! {
408
- #[derive(::derive_more::Display)]
409
- #visibility enum #events_enum_name {
410
- #(#events),*
411
- }
412
- };
413
-
414
- // Construct the trait implementation
415
- let cmd_type = &self.command_type;
416
- let err_type = &self.error_type;
417
- let mut statemap: HashMap<Ident, Vec<Transition>> = HashMap::new();
418
- for t in &self.transitions {
419
- statemap
420
- .entry(t.from.clone())
421
- .and_modify(|v| v.push(t.clone()))
422
- .or_insert_with(|| vec![t.clone()]);
423
- }
424
- // Add any states without any transitions to the map
425
- for s in &states {
426
- if !statemap.contains_key(s) {
427
- statemap.insert(s.clone(), vec![]);
428
- }
429
- }
430
- let mut multi_dest_enums = vec![];
431
- let state_branches: Vec<_> = statemap.into_iter().map(|(from, transitions)| {
432
- // Merge transition dest states with the same handler
433
- let transitions = merge_transition_dests(transitions);
434
- let event_branches = transitions
435
- .into_iter()
436
- .map(|ts| {
437
- let ev_variant = &ts.event.ident;
438
- if let Some(ts_fn) = ts.handler.clone() {
439
- let span = ts_fn.span();
440
- let trans_type = match ts.to.as_slice() {
441
- [] => unreachable!("There will be at least one dest state in transitions"),
442
- [one_to] => quote! {
443
- #transition_result_name<#one_to>
444
- },
445
- multi_dests => {
446
- let string_dests: Vec<_> = multi_dests.iter()
447
- .map(ToString::to_string).collect();
448
- let enum_ident = Ident::new(&string_dests.join("Or"),
449
- multi_dests[0].span());
450
- let multi_dest_enum = quote! {
451
- #[derive(::derive_more::From)]
452
- #visibility enum #enum_ident {
453
- #(#multi_dests(#multi_dests)),*
454
- }
455
- impl ::core::convert::From<#enum_ident> for #state_enum_name {
456
- fn from(v: #enum_ident) -> Self {
457
- match v {
458
- #( #enum_ident::#multi_dests(sv) =>
459
- Self::#multi_dests(sv) ),*
460
- }
461
- }
462
- }
463
- };
464
- multi_dest_enums.push(multi_dest_enum);
465
- quote! {
466
- #transition_result_name<#enum_ident>
467
- }
468
- }
469
- };
470
- match ts.event.fields {
471
- Fields::Unnamed(_) => {
472
- let arglist = if ts.mutates_shared {
473
- quote! {self.shared_state, val}
474
- } else {
475
- quote! {val}
476
- };
477
- quote_spanned! {span=>
478
- #events_enum_name::#ev_variant(val) => {
479
- let res: #trans_type = state_data.#ts_fn(#arglist);
480
- res.into_general()
481
- }
482
- }
483
- }
484
- Fields::Unit => {
485
- let arglist = if ts.mutates_shared {
486
- quote! {self.shared_state}
487
- } else {
488
- quote! {}
489
- };
490
- quote_spanned! {span=>
491
- #events_enum_name::#ev_variant => {
492
- let res: #trans_type = state_data.#ts_fn(#arglist);
493
- res.into_general()
494
- }
495
- }
496
- }
497
- Fields::Named(_) => unreachable!(),
498
- }
499
- } else {
500
- // If events do not have a handler, attempt to construct the next state
501
- // using `Default`.
502
- if let [new_state] = ts.to.as_slice() {
503
- let span = new_state.span();
504
- let default_trans = quote_spanned! {span=>
505
- TransitionResult::<_, #new_state>::from::<#from>(state_data).into_general()
506
- };
507
- let span = ts.event.span();
508
- match ts.event.fields {
509
- Fields::Unnamed(_) => quote_spanned! {span=>
510
- #events_enum_name::#ev_variant(_val) => {
511
- #default_trans
512
- }
513
- },
514
- Fields::Unit => quote_spanned! {span=>
515
- #events_enum_name::#ev_variant => {
516
- #default_trans
517
- }
518
- },
519
- Fields::Named(_) => unreachable!(),
520
- }
521
-
522
- } else {
523
- unreachable!("It should be impossible to have more than one dest state in no-handler transitions")
524
- }
525
- }
526
- })
527
- // Since most states won't handle every possible event, return an error to that effect
528
- .chain(std::iter::once(
529
- quote! { _ => { return TransitionResult::InvalidTransition } },
530
- ));
531
- quote! {
532
- #state_enum_name::#from(state_data) => match event {
533
- #(#event_branches),*
534
- }
535
- }
536
- }).collect();
537
-
538
- let viz_str = self.visualize();
539
-
540
- let trait_impl = quote! {
541
- impl ::rustfsm::StateMachine for #name {
542
- type Error = #err_type;
543
- type State = #state_enum_name;
544
- type SharedState = #shared_state_type;
545
- type Event = #events_enum_name;
546
- type Command = #cmd_type;
547
-
548
- fn name(&self) -> &str {
549
- #name_str
550
- }
551
-
552
- fn on_event(self, event: #events_enum_name)
553
- -> ::rustfsm::TransitionResult<Self, Self::State> {
554
- match self.state {
555
- #(#state_branches),*
556
- }
557
- }
558
-
559
- fn state(&self) -> &Self::State {
560
- &self.state
561
- }
562
-
563
- fn set_state(&mut self, new: Self::State) {
564
- self.state = new
565
- }
566
-
567
- fn shared_state(&self) -> &Self::SharedState{
568
- &self.shared_state
569
- }
570
-
571
- fn has_reached_final_state(&self) -> bool {
572
- self.state.is_final()
573
- }
574
-
575
- fn from_parts(shared: Self::SharedState, state: Self::State) -> Self {
576
- Self { shared_state: shared, state }
577
- }
578
-
579
- fn visualizer() -> &'static str {
580
- #viz_str
581
- }
582
- }
583
- };
584
-
585
- let output = quote! {
586
- #transition_type_alias
587
- #machine_struct
588
- #states_enum
589
- #(#multi_dest_enums)*
590
- #states_enum_impl
591
- #events_enum
592
- #trait_impl
593
- };
594
-
595
- TokenStream::from(output)
596
- }
597
-
598
- fn all_states(&self) -> HashSet<Ident> {
599
- self.transitions
600
- .iter()
601
- .flat_map(|t| {
602
- let mut states = t.to.clone();
603
- states.push(t.from.clone());
604
- states
605
- })
606
- .collect()
607
- }
608
-
609
- fn visualize(&self) -> String {
610
- let transitions: Vec<String> = self
611
- .transitions
612
- .iter()
613
- .flat_map(|t| {
614
- t.to.iter()
615
- .map(move |d| format!("{} --> {}: {}", t.from, d, t.event.ident))
616
- })
617
- // Add all final state transitions
618
- .chain(
619
- self.all_states()
620
- .iter()
621
- .filter(|s| self.is_final_state(s))
622
- .map(|s| format!("{s} --> [*]")),
623
- )
624
- .collect();
625
- let transitions = transitions.join("\n");
626
- format!("@startuml\n{transitions}\n@enduml")
627
- }
628
- }
629
-
630
- /// Merge transition's dest state lists for those with the same from state & handler
631
- fn merge_transition_dests(transitions: Vec<Transition>) -> Vec<Transition> {
632
- let mut map = HashMap::<_, Transition>::new();
633
- for t in transitions {
634
- // We want to use the transition sans-destinations as the key
635
- let without_dests = {
636
- let mut wd = t.clone();
637
- wd.to = vec![];
638
- wd
639
- };
640
- match map.entry(without_dests) {
641
- Entry::Occupied(mut e) => {
642
- e.get_mut().to.extend(t.to.into_iter());
643
- }
644
- Entry::Vacant(v) => {
645
- v.insert(t);
646
- }
647
- }
648
- }
649
- map.into_values().collect()
650
- }
@@ -1,8 +0,0 @@
1
- extern crate rustfsm_trait as rustfsm;
2
-
3
- #[test]
4
- fn tests() {
5
- let t = trybuild::TestCases::new();
6
- t.pass("tests/trybuild/*_pass.rs");
7
- t.compile_fail("tests/trybuild/*_fail.rs");
8
- }
@@ -1,18 +0,0 @@
1
- extern crate rustfsm_trait as rustfsm;
2
-
3
- use rustfsm_procmacro::fsm;
4
-
5
- fsm! {
6
- name SimpleMachine; command SimpleMachineCommand; error Infallible;
7
-
8
- One --(A)--> Two;
9
- One --(A)--> Two;
10
- }
11
-
12
- #[derive(Default, Clone)]
13
- pub struct One {}
14
-
15
- #[derive(Default, Clone)]
16
- pub struct Two {}
17
-
18
- fn main() {}
@@ -1,12 +0,0 @@
1
- error: Duplicate transitions are not allowed!
2
- --> $DIR/dupe_transitions_fail.rs:5:1
3
- |
4
- 5 | / fsm! {
5
- 6 | | name SimpleMachine; command SimpleMachineCommand; error Infallible;
6
- 7 | |
7
- 8 | | One --(A)--> Two;
8
- 9 | | One --(A)--> Two;
9
- 10 | | }
10
- | |_^
11
- |
12
- = note: this error originates in the macro `fsm` (in Nightly builds, run with -Z macro-backtrace for more info)