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
//! Workflows are the core building block of Holochain functionality.
//!
//! ## Properties
//!
//! Workflows are **transactional**, so that if any workflow fails to run to
//! completion, nothing will happen.
//!
//! In order to achieve this, workflow functions are **free of any side-effects
//! which modify cryptographic state**: they will not modify the source chain
//! nor send network messages which could cause other agents to update their own
//! source chain.
//!
//! Workflows are **never nested**. A workflow cannot call another workflow.
//! However, a workflow can specify that any number of other workflows should
//! be triggered after this one completes.
//!
//! Side effects and triggering of other workflows is specified declaratively
//! rather than imperatively. Each workflow returns a `WorkflowEffects` value
//! representing the side effects that should be run. The `finish` function
//! processes this value and performs the necessary actions, including
//! committing changes to the associated Workspace and triggering other
//! workflows.
pub use *;
// MAYBE: either remove wildcards or add wildcards for all above child modules
pub use *;
pub use *;
pub use *;