1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright (c) 2026 Super Durable, Inc.
//
// Licensed under the Super Durable Source License 1.0.
// You may not use this file except in compliance with the License.
// See the LICENSE file in the repository root.
//
// SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
use crate::;
/// Defines a durable application Flow and its registered API surface.
///
/// A Flow owns a typed start input, Step list, persistence schema, and RPC list. Implementations are
/// registered as owned values in [`crate::Registry`] and shared safely across Worker invocations.
/// Keep [`Self::flow_type`] and all subordinate names stable while any execution is running.
///
/// # Examples
///
/// ```
/// use dex_sdk::{Flow, StepList};
///
/// struct OrderFlow;
///
/// impl Flow for OrderFlow {
/// type StartInput = String;
///
/// fn flow_type(&self) -> &'static str {
/// "OrderFlow"
/// }
///
/// fn steps(&self) -> StepList<'_, Self::StartInput> {
/// StepList::empty()
/// }
/// }
/// ```