dfir_lang/graph/ops/
chain.rs
1use crate::graph::PortIndexValue;
2
3use super::{
4 DelayType, OperatorCategory, OperatorConstraints, RANGE_0, RANGE_1
5};
6
7pub const CHAIN: OperatorConstraints = OperatorConstraints {
22 name: "chain",
23 categories: &[OperatorCategory::MultiIn],
24 persistence_args: RANGE_0,
25 type_args: RANGE_0,
26 hard_range_inn: &(2..=2),
27 soft_range_inn: &(2..=2),
28 hard_range_out: RANGE_1,
29 soft_range_out: RANGE_1,
30 num_args: 0,
31 is_external_input: false,
32 has_singleton_output: false,
33 flo_type: None,
34 ports_inn: None,
35 ports_out: None,
36 input_delaytype_fn: |idx| match idx {
37 PortIndexValue::Int(idx) if idx.value == 0 => {
38 Some(DelayType::Stratum)
39 }
40 _else => None,
41 },
42 write_fn: super::union::UNION.write_fn,
43};