Appendix: Node types and their edges¶
The following table shows which edge kinds may adjoin each node type.
Under each edge kind, the inbound constraints are followed by the outbound constraints. The symbol ✱ stands for “any number”, while + stands for “at least one”. For example, “1, ✱” means “one edge in, any number out”.
The “Root” row of the table applies to whichever node is the HUGR root,
including Module.
Node type |
|
|
|
|
|
|
Children |
|---|---|---|---|---|---|---|---|
Root |
0, 0 |
0, 0 |
0, 0 |
0, 0 |
0, 0 |
0, ✱ |
|
|
0, 0 |
0, 0 |
0, 0 |
0, ✱ |
0, 0 |
1, + |
DSG |
|
0, 0 |
0, 0 |
0, 0 |
0, ✱ |
0, 0 |
1, 0 |
|
|
0, 0 |
0, 0 |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
0, 0 |
0, 0 |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
0, 0 |
0, 0 |
0, ✱ |
0, 0 |
0, 0 |
1, 0 |
|
|
0, 1 |
✱, ✱ |
1, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
0, 1 |
✱, ✱ |
0, 0 |
1, 0 |
0, 0 |
1, 0 |
|
|
0, ✱ |
0, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
✱, 0 |
✱, 0 |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
✱, ✱ |
✱, ✱ |
0, 0 |
1, 0 |
0, 0 |
1, 0 |
|
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, + |
DSG |
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, + |
CSG |
|
0, 0 |
0, 0 |
0, 0 |
0, 0 |
✱, ✱ |
1, + |
DSG |
|
0, 0 |
0, 0 |
0, 0 |
0, 0 |
+, 0 |
1, 0 |
|
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, + |
DSG |
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, + |
|
|
0, 0 |
0, 0 |
0, 0 |
0, 0 |
0, 0 |
1, + |
DSG |
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
1, 1 |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
✱, 1 |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
1, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
1, 1 |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |
|
|
✱, ✱ |
✱, ✱ |
0, 0 |
0, 0 |
0, 0 |
1, 0 |