temporalio 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +4035 -0
  3. data/Cargo.toml +25 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +16 -15
  6. data/README.md +455 -195
  7. data/Rakefile +387 -0
  8. data/ext/Cargo.toml +25 -0
  9. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  10. data/lib/temporalio/activity/context.rb +82 -77
  11. data/lib/temporalio/activity/definition.rb +77 -0
  12. data/lib/temporalio/activity/info.rb +42 -46
  13. data/lib/temporalio/activity.rb +49 -65
  14. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  15. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
  16. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  17. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  18. data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
  19. data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
  20. data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
  21. data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
  22. data/lib/temporalio/api/command/v1/message.rb +46 -0
  23. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  24. data/lib/temporalio/api/common/v1/message.rb +41 -0
  25. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  26. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  27. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  28. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  29. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  30. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  31. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  32. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  35. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  36. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  37. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  38. data/lib/temporalio/api/export/v1/message.rb +24 -0
  39. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  40. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  41. data/lib/temporalio/api/history/v1/message.rb +90 -0
  42. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  43. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  44. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  45. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  46. data/lib/temporalio/api/operatorservice.rb +3 -0
  47. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  48. data/lib/temporalio/api/query/v1/message.rb +27 -0
  49. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  50. data/lib/temporalio/api/schedule/v1/message.rb +42 -0
  51. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  52. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  53. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  54. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  55. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  56. data/lib/temporalio/api/update/v1/message.rb +33 -0
  57. data/lib/temporalio/api/version/v1/message.rb +26 -0
  58. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  59. data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
  60. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  61. data/lib/temporalio/api/workflowservice.rb +3 -0
  62. data/lib/temporalio/api.rb +13 -0
  63. data/lib/temporalio/cancellation.rb +150 -0
  64. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  65. data/lib/temporalio/client/async_activity_handle.rb +110 -0
  66. data/lib/temporalio/client/connection/cloud_service.rb +648 -0
  67. data/lib/temporalio/client/connection/operator_service.rb +249 -0
  68. data/lib/temporalio/client/connection/service.rb +41 -0
  69. data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
  70. data/lib/temporalio/client/connection.rb +270 -0
  71. data/lib/temporalio/client/interceptor.rb +316 -0
  72. data/lib/temporalio/client/workflow_execution.rb +103 -0
  73. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  74. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  75. data/lib/temporalio/client/workflow_handle.rb +380 -177
  76. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  77. data/lib/temporalio/client/workflow_update_handle.rb +67 -0
  78. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  79. data/lib/temporalio/client.rb +366 -93
  80. data/lib/temporalio/common_enums.rb +24 -0
  81. data/lib/temporalio/converters/data_converter.rb +102 -0
  82. data/lib/temporalio/converters/failure_converter.rb +200 -0
  83. data/lib/temporalio/converters/payload_codec.rb +26 -0
  84. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  85. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  86. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  87. data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
  88. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  89. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  90. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  91. data/lib/temporalio/converters/payload_converter.rb +73 -0
  92. data/lib/temporalio/converters.rb +9 -0
  93. data/lib/temporalio/error/failure.rb +119 -94
  94. data/lib/temporalio/error.rb +147 -0
  95. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  96. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  97. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  98. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  99. data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
  100. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  101. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
  102. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
  103. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  104. data/lib/temporalio/internal/bridge/api.rb +3 -0
  105. data/lib/temporalio/internal/bridge/client.rb +90 -0
  106. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  107. data/lib/temporalio/internal/bridge/testing.rb +46 -0
  108. data/lib/temporalio/internal/bridge/worker.rb +83 -0
  109. data/lib/temporalio/internal/bridge.rb +36 -0
  110. data/lib/temporalio/internal/client/implementation.rb +525 -0
  111. data/lib/temporalio/internal/proto_utils.rb +54 -0
  112. data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
  113. data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
  114. data/lib/temporalio/internal.rb +7 -0
  115. data/lib/temporalio/retry_policy.rb +39 -80
  116. data/lib/temporalio/runtime.rb +259 -13
  117. data/lib/temporalio/scoped_logger.rb +96 -0
  118. data/lib/temporalio/search_attributes.rb +300 -0
  119. data/lib/temporalio/testing/activity_environment.rb +132 -0
  120. data/lib/temporalio/testing/workflow_environment.rb +113 -88
  121. data/lib/temporalio/testing.rb +4 -169
  122. data/lib/temporalio/version.rb +3 -1
  123. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  124. data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
  125. data/lib/temporalio/worker/activity_executor.rb +55 -0
  126. data/lib/temporalio/worker/interceptor.rb +88 -0
  127. data/lib/temporalio/worker/tuner.rb +151 -0
  128. data/lib/temporalio/worker.rb +385 -163
  129. data/lib/temporalio/workflow_history.rb +22 -0
  130. data/lib/temporalio.rb +2 -7
  131. data/temporalio.gemspec +20 -39
  132. metadata +131 -712
  133. data/bridge/Cargo.lock +0 -2997
  134. data/bridge/Cargo.toml +0 -29
  135. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  136. data/bridge/sdk-core/Cargo.toml +0 -2
  137. data/bridge/sdk-core/LICENSE.txt +0 -23
  138. data/bridge/sdk-core/README.md +0 -117
  139. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  140. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  141. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  142. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  143. data/bridge/sdk-core/client/Cargo.toml +0 -40
  144. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  145. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  146. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  147. data/bridge/sdk-core/client/src/raw.rs +0 -932
  148. data/bridge/sdk-core/client/src/retry.rs +0 -763
  149. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  150. data/bridge/sdk-core/core/Cargo.toml +0 -129
  151. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  152. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  153. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  154. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  155. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  156. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  157. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  158. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  159. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  160. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  161. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  162. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  163. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  164. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  165. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  166. data/bridge/sdk-core/core/src/lib.rs +0 -289
  167. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  168. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  169. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  170. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  171. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  172. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  173. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  174. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  175. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  176. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  177. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  178. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  179. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  180. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  181. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  182. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  183. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  184. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  185. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  186. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  187. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  188. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  189. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  190. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  191. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  192. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  193. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  194. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  195. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  196. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  197. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  198. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  199. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  200. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  201. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  202. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  203. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  204. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  205. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  206. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  207. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  208. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  209. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  210. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  211. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  212. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  213. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  214. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  215. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  216. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  217. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  218. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  219. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  220. data/bridge/sdk-core/etc/deps.svg +0 -162
  221. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  222. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  223. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  224. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  225. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  226. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  227. data/bridge/sdk-core/fsm/README.md +0 -3
  228. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  229. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  230. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  231. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  232. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  233. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  234. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  235. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  236. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  237. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  238. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  239. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  240. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  241. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  242. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  243. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  244. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  245. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  246. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  247. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  248. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  249. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  250. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  251. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  252. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  253. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  254. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  255. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  256. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  257. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  258. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  259. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  260. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  261. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  262. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  263. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  264. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  265. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  266. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  267. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  268. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  269. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  270. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  271. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  272. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  273. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  274. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  275. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  276. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  277. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  278. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  279. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  280. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  281. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  282. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  283. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  284. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  285. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  286. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  287. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  288. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  289. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  290. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  291. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  292. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  293. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  294. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  295. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  296. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  298. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  299. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  300. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  301. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  302. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  303. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  304. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  305. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  306. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  307. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  308. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  309. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  310. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  311. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  312. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  313. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  314. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  315. data/bridge/sdk-core/rustfmt.toml +0 -1
  316. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  317. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  318. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  319. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  320. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  321. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  322. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  323. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  324. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  325. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  326. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  327. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  328. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  329. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  330. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  331. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  332. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  333. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  334. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  335. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  336. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  337. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  338. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  339. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  340. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  341. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  342. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  343. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  344. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  345. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  346. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  347. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  348. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  349. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  350. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  351. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  352. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  353. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  354. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  355. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  356. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  357. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  358. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  359. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  360. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  361. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  362. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  363. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  364. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  365. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  366. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  367. data/bridge/sdk-core/tests/main.rs +0 -103
  368. data/bridge/sdk-core/tests/runner.rs +0 -132
  369. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  370. data/bridge/src/connection.rs +0 -202
  371. data/bridge/src/lib.rs +0 -494
  372. data/bridge/src/runtime.rs +0 -54
  373. data/bridge/src/test_server.rs +0 -153
  374. data/bridge/src/worker.rs +0 -197
  375. data/ext/Rakefile +0 -9
  376. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  377. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  378. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  379. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  380. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  381. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  382. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  383. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  384. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  385. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  386. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  387. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  388. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  389. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  390. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  391. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  392. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  393. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  394. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  395. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  396. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  397. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  398. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  399. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  400. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  401. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  402. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  403. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  404. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  405. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
  406. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  407. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  408. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  409. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  410. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  411. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  412. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  413. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  414. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  415. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  416. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  417. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  418. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  419. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  420. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  421. data/lib/temporalio/bridge/connect_options.rb +0 -15
  422. data/lib/temporalio/bridge/error.rb +0 -8
  423. data/lib/temporalio/bridge/retry_config.rb +0 -24
  424. data/lib/temporalio/bridge/tls_options.rb +0 -19
  425. data/lib/temporalio/bridge.rb +0 -14
  426. data/lib/temporalio/client/implementation.rb +0 -340
  427. data/lib/temporalio/connection/retry_config.rb +0 -44
  428. data/lib/temporalio/connection/service.rb +0 -20
  429. data/lib/temporalio/connection/test_service.rb +0 -92
  430. data/lib/temporalio/connection/tls_options.rb +0 -51
  431. data/lib/temporalio/connection/workflow_service.rb +0 -731
  432. data/lib/temporalio/connection.rb +0 -86
  433. data/lib/temporalio/data_converter.rb +0 -191
  434. data/lib/temporalio/error/workflow_failure.rb +0 -19
  435. data/lib/temporalio/errors.rb +0 -40
  436. data/lib/temporalio/failure_converter/base.rb +0 -26
  437. data/lib/temporalio/failure_converter/basic.rb +0 -319
  438. data/lib/temporalio/failure_converter.rb +0 -7
  439. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  440. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  441. data/lib/temporalio/interceptor/chain.rb +0 -28
  442. data/lib/temporalio/interceptor/client.rb +0 -127
  443. data/lib/temporalio/interceptor.rb +0 -22
  444. data/lib/temporalio/payload_codec/base.rb +0 -32
  445. data/lib/temporalio/payload_converter/base.rb +0 -24
  446. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  447. data/lib/temporalio/payload_converter/composite.rb +0 -49
  448. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  449. data/lib/temporalio/payload_converter/json.rb +0 -26
  450. data/lib/temporalio/payload_converter/nil.rb +0 -26
  451. data/lib/temporalio/payload_converter.rb +0 -14
  452. data/lib/temporalio/retry_state.rb +0 -35
  453. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  454. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  455. data/lib/temporalio/timeout_type.rb +0 -29
  456. data/lib/temporalio/worker/activity_runner.rb +0 -114
  457. data/lib/temporalio/worker/activity_worker.rb +0 -164
  458. data/lib/temporalio/worker/reactor.rb +0 -46
  459. data/lib/temporalio/worker/runner.rb +0 -63
  460. data/lib/temporalio/worker/sync_worker.rb +0 -124
  461. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  462. data/lib/temporalio/workflow/async.rb +0 -46
  463. data/lib/temporalio/workflow/execution_info.rb +0 -54
  464. data/lib/temporalio/workflow/execution_status.rb +0 -36
  465. data/lib/temporalio/workflow/future.rb +0 -138
  466. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  467. data/lib/temporalio/workflow/info.rb +0 -76
  468. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  469. data/lib/thermite_patch.rb +0 -33
  470. data/sig/async.rbs +0 -17
  471. data/sig/protobuf.rbs +0 -16
  472. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  473. data/sig/protos/google/protobuf/any.rbs +0 -157
  474. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  475. data/sig/protos/google/protobuf/duration.rbs +0 -114
  476. data/sig/protos/google/protobuf/empty.rbs +0 -36
  477. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  478. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  479. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  480. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  481. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  482. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  483. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  484. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  485. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  486. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  487. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  488. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  489. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  490. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  491. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  492. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  493. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  494. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  495. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  496. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  497. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  498. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  499. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  500. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  501. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  502. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  503. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  504. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  505. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  506. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  507. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  508. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  509. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  510. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  511. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  512. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  513. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  514. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  515. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  516. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  517. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  518. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  519. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  520. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  521. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  522. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  523. data/sig/ruby.rbs +0 -12
  524. data/sig/temporalio/activity/context.rbs +0 -29
  525. data/sig/temporalio/activity/info.rbs +0 -43
  526. data/sig/temporalio/activity.rbs +0 -19
  527. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  528. data/sig/temporalio/bridge/error.rbs +0 -8
  529. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  530. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  531. data/sig/temporalio/bridge.rbs +0 -71
  532. data/sig/temporalio/client/implementation.rbs +0 -38
  533. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  534. data/sig/temporalio/client.rbs +0 -35
  535. data/sig/temporalio/connection/retry_config.rbs +0 -37
  536. data/sig/temporalio/connection/service.rbs +0 -14
  537. data/sig/temporalio/connection/test_service.rbs +0 -13
  538. data/sig/temporalio/connection/tls_options.rbs +0 -43
  539. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  540. data/sig/temporalio/connection.rbs +0 -30
  541. data/sig/temporalio/data_converter.rbs +0 -35
  542. data/sig/temporalio/error/failure.rbs +0 -121
  543. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  544. data/sig/temporalio/errors.rbs +0 -36
  545. data/sig/temporalio/failure_converter/base.rbs +0 -12
  546. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  547. data/sig/temporalio/failure_converter.rbs +0 -5
  548. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  549. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  550. data/sig/temporalio/interceptor/chain.rbs +0 -24
  551. data/sig/temporalio/interceptor/client.rbs +0 -148
  552. data/sig/temporalio/interceptor.rbs +0 -6
  553. data/sig/temporalio/payload_codec/base.rbs +0 -12
  554. data/sig/temporalio/payload_converter/base.rbs +0 -12
  555. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  556. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  557. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  558. data/sig/temporalio/payload_converter/json.rbs +0 -9
  559. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  560. data/sig/temporalio/payload_converter.rbs +0 -5
  561. data/sig/temporalio/retry_policy.rbs +0 -25
  562. data/sig/temporalio/retry_state.rbs +0 -20
  563. data/sig/temporalio/runtime.rbs +0 -12
  564. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  565. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  566. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  567. data/sig/temporalio/testing.rbs +0 -35
  568. data/sig/temporalio/timeout_type.rbs +0 -15
  569. data/sig/temporalio/version.rbs +0 -3
  570. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  571. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  572. data/sig/temporalio/worker/reactor.rbs +0 -22
  573. data/sig/temporalio/worker/runner.rbs +0 -21
  574. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  575. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  576. data/sig/temporalio/worker.rbs +0 -46
  577. data/sig/temporalio/workflow/async.rbs +0 -9
  578. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  579. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  580. data/sig/temporalio/workflow/future.rbs +0 -40
  581. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  582. data/sig/temporalio/workflow/info.rbs +0 -55
  583. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  584. data/sig/temporalio.rbs +0 -2
  585. 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)