acts_next/model/act/
call.rs1use crate::{Act, Vars};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5pub struct Call {
6 #[serde(default)]
7 pub key: String,
8
9 #[serde(default)]
10 pub inputs: Vars,
11
12 #[serde(default)]
13 pub rets: Vars,
14}
15
16impl Call {
17 pub fn new() -> Self {
18 Default::default()
19 }
20
21 pub fn with_key(mut self, key: &str) -> Self {
22 self.key = key.to_string();
23 self
24 }
25
26 pub fn with_input<T>(mut self, name: &str, value: T) -> Self
27 where
28 T: Serialize + Clone,
29 {
30 self.inputs.set(name, value);
31 self
32 }
33
34 pub fn with_ret<T>(mut self, name: &str, value: T) -> Self
35 where
36 T: Serialize + Clone,
37 {
38 self.rets.set(name, value);
39 self
40 }
41}
42
43impl From<Call> for Act {
44 fn from(val: Call) -> Self {
45 Act::call(|_| val.clone())
46 }
47}