hydro2_operator/
opcode.rs1crate::ix!();
3
4pub trait OpCode: Send + Sync {
5 fn val(&self) -> u64;
6}
7
8#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10pub enum BasicOpCode {
11 Foo,
12 Nothing,
13 Sink,
14 TestOp,
15 MultiThing,
16 NoOp,
17 FailingOp,
18 StreamTestOp,
19 SingleValueTestOp,
20 AddOp,
21 MultiplyOp,
22 ToStringOp,
23 ConstantOp,
24 IncrementOperator,
25 SingleChannelPassthrough,
26 DoubleToTriOp,
27 DoubleOp,
28 DoubleToTriTwoGenericsOp,
29 Merge2Op,
30 DoubleOutOp,
31 QuadToQuadOp,
32 SingleToTriOp,
33 TriToQuadOp,
34 TriToSingleOp,
35 SplitAndDoubleOp,
36}
37
38unsafe impl Send for BasicOpCode {}
39unsafe impl Sync for BasicOpCode {}
40
41impl OpCode for BasicOpCode {
42 fn val(&self) -> u64 {
43 use BasicOpCode::*;
44 match self {
45 Foo => 0,
46 Nothing => 1,
47 Sink => 2,
48 TestOp => 3,
49 MultiThing => 4,
50 NoOp => 5,
51 FailingOp => 6,
52 StreamTestOp => 7,
53 SingleValueTestOp => 8,
54 AddOp => 9,
55 MultiplyOp => 10,
56 ToStringOp => 11,
57 ConstantOp => 12,
58 IncrementOperator => 13,
59 SingleChannelPassthrough => 14,
60 DoubleToTriOp => 15,
61 DoubleOp => 16,
62 DoubleToTriTwoGenericsOp => 17,
63 Merge2Op => 18,
64 DoubleOutOp => 19,
65 QuadToQuadOp => 20,
66 SingleToTriOp => 21,
67 TriToQuadOp => 22,
68 TriToSingleOp => 23,
69 SplitAndDoubleOp => 24,
70 }
71 }
72}