scarf_syntax/specify_section/
specify_path_delays.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum PathDelayValue<'a> {
9 NoParen(Box<ListOfPathDelayExpressions<'a>>),
10 Paren(
11 Box<(
12 Metadata<'a>, ListOfPathDelayExpressions<'a>,
14 Metadata<'a>, )>,
16 ),
17}
18
19#[derive(Clone, Debug, PartialEq)]
20pub enum ListOfPathDelayExpressions<'a> {
21 Path(Box<TPathDelayExpression<'a>>),
22 RiseFall(
23 Box<(
24 TrisePathDelayExpression<'a>,
25 Metadata<'a>, TfallPathDelayExpression<'a>,
27 )>,
28 ),
29 RiseFallZ(
30 Box<(
31 TrisePathDelayExpression<'a>,
32 Metadata<'a>, TfallPathDelayExpression<'a>,
34 Metadata<'a>, TzPathDelayExpression<'a>,
36 )>,
37 ),
38 EdgeZ(
39 Box<(
40 T01PathDelayExpression<'a>,
41 Metadata<'a>, T10PathDelayExpression<'a>,
43 Metadata<'a>, T0zPathDelayExpression<'a>,
45 Metadata<'a>, Tz1PathDelayExpression<'a>,
47 Metadata<'a>, T1zPathDelayExpression<'a>,
49 Metadata<'a>, Tz0PathDelayExpression<'a>,
51 )>,
52 ),
53 EdgeZX(
55 Box<(
56 (
57 T01PathDelayExpression<'a>,
58 Metadata<'a>, T10PathDelayExpression<'a>,
60 Metadata<'a>, T0zPathDelayExpression<'a>,
62 Metadata<'a>, Tz1PathDelayExpression<'a>,
64 Metadata<'a>, T1zPathDelayExpression<'a>,
66 Metadata<'a>, Tz0PathDelayExpression<'a>,
68 Metadata<'a>, ),
70 (
71 T0xPathDelayExpression<'a>,
72 Metadata<'a>, Tx1PathDelayExpression<'a>,
74 Metadata<'a>, T1xPathDelayExpression<'a>,
76 Metadata<'a>, Tx0PathDelayExpression<'a>,
78 Metadata<'a>, TxzPathDelayExpression<'a>,
80 Metadata<'a>, TzxPathDelayExpression<'a>,
82 ),
83 )>,
84 ),
85}
86
87#[derive(Clone, Debug, PartialEq)]
88pub struct TPathDelayExpression<'a>(pub PathDelayExpression<'a>);
89
90#[derive(Clone, Debug, PartialEq)]
91pub struct TrisePathDelayExpression<'a>(pub PathDelayExpression<'a>);
92
93#[derive(Clone, Debug, PartialEq)]
94pub struct TfallPathDelayExpression<'a>(pub PathDelayExpression<'a>);
95
96#[derive(Clone, Debug, PartialEq)]
97pub struct TzPathDelayExpression<'a>(pub PathDelayExpression<'a>);
98
99#[derive(Clone, Debug, PartialEq)]
100pub struct T01PathDelayExpression<'a>(pub PathDelayExpression<'a>);
101
102#[derive(Clone, Debug, PartialEq)]
103pub struct T10PathDelayExpression<'a>(pub PathDelayExpression<'a>);
104
105#[derive(Clone, Debug, PartialEq)]
106pub struct T0zPathDelayExpression<'a>(pub PathDelayExpression<'a>);
107
108#[derive(Clone, Debug, PartialEq)]
109pub struct Tz1PathDelayExpression<'a>(pub PathDelayExpression<'a>);
110
111#[derive(Clone, Debug, PartialEq)]
112pub struct T1zPathDelayExpression<'a>(pub PathDelayExpression<'a>);
113
114#[derive(Clone, Debug, PartialEq)]
115pub struct Tz0PathDelayExpression<'a>(pub PathDelayExpression<'a>);
116
117#[derive(Clone, Debug, PartialEq)]
118pub struct T0xPathDelayExpression<'a>(pub PathDelayExpression<'a>);
119
120#[derive(Clone, Debug, PartialEq)]
121pub struct Tx1PathDelayExpression<'a>(pub PathDelayExpression<'a>);
122
123#[derive(Clone, Debug, PartialEq)]
124pub struct T1xPathDelayExpression<'a>(pub PathDelayExpression<'a>);
125
126#[derive(Clone, Debug, PartialEq)]
127pub struct Tx0PathDelayExpression<'a>(pub PathDelayExpression<'a>);
128
129#[derive(Clone, Debug, PartialEq)]
130pub struct TxzPathDelayExpression<'a>(pub PathDelayExpression<'a>);
131
132#[derive(Clone, Debug, PartialEq)]
133pub struct TzxPathDelayExpression<'a>(pub PathDelayExpression<'a>);
134
135#[derive(Clone, Debug, PartialEq)]
136pub struct PathDelayExpression<'a>(pub ConstantMintypmaxExpression<'a>);