graph TD subgraph Normal["Normal Merge β "] L1["Left (delay=1)"] --- P1["Parent at midpoint"] --- R1["Right (delay=1)"] end subgraph Elongation["Elongation Needed β οΈ"] L2["Left (delay=10)\nπ₯ Slower"] --- P2["Parent at Left\n(extend=0)"] -.-> R2["Right (delay=1)\nπ’ Faster"] R2 -.->|"elongated\nwire=14 (> 10)"| P2 end style L1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style P1 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style R1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style L2 fill:#ffcdd2,stroke:#c62828,stroke-width:3px style P2 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style R2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
graph LR subgraph cpp["physdes-cpp (C++20)"] CPP_TN["TreeNode\nleft/right: size_t"] CPP_T["Tree\nVec<TreeNode>"] CPP_TR["TappingResult"] CPP_EL["elongation: _compute_merging_segment"] end subgraph rs["physdes-rs (Rust)"] RS_TN["TreeNode\nleft/right: Option<usize>"] RS_T["Tree\nVec<TreeNode>"] RS_TR["TappingResult"] RS_EL["elongation: compute_merging_segment"] end cpp -.->|"same design"| rs style CPP_TN fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style CPP_T fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style CPP_TR fill:#e1f5fe,stroke:#01579b,color:#2e3440,stroke-width:3px style CPP_EL fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style RS_TN fill:#fff3e0,stroke:#e65100,stroke-width:3px style RS_T fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style RS_TR fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style RS_EL fill:#fff3e0,stroke:#e65100,stroke-width:3px