hydro2_basic_operators/
single_value_test_op.rs1crate::ix!();
3
4#[derive(NamedItem, Operator, Debug)]
8#[operator(
9 execute="produce_val",
10 opcode="BasicOpCode::SingleValueTestOp",
11 output0="i32"
12)]
13pub struct SingleValOp {
14 name: String,
15 val: i32,
16}
17
18impl Default for SingleValOp {
19
20 fn default() -> Self {
21 Self {
22 name: "SingleValOp".to_string(),
23 val: 777,
24 }
25 }
26}
27
28impl SingleValOp {
29
30 async fn produce_val(&self) -> NetResult<i32> {
31 info!("SingleValOp => produce {}", self.val);
32 Ok(self.val)
33 }
34}
35
36#[cfg(test)]
37mod single_val_op_tests {
38 use super::*;
39
40 #[tokio::test]
41 async fn test_single_val_op_produces_777() -> Result<(), NetworkError> {
42 let op = SingleValOp::default();
43 let input: [Option<&SingleValOpIO>;4] = [None,None,None,None];
44 let mut out: [Option<SingleValOpIO>;4] = [None,None,None,None];
45
46 op.execute(input, &mut out).await?;
47 assert_eq!(out[0], Some(SingleValOpIO::Output0(777)));
48 Ok(())
49 }
50}