Effective cached prefix = bytes up to the last breakpoint strictly before divergence.
(segs: WireSegment[], divergeIdx: number)
| 143 | |
| 144 | /** Effective cached prefix = bytes up to the last breakpoint strictly before divergence. */ |
| 145 | function cachedPrefixBytes(segs: WireSegment[], divergeIdx: number): { bytes: number; at: string } { |
| 146 | let bytes = 0; |
| 147 | let lastBreakpointBytes = 0; |
| 148 | let lastBreakpointId = "(none)"; |
| 149 | const limit = divergeIdx < 0 ? segs.length : divergeIdx; |
| 150 | for (let i = 0; i < segs.length; i += 1) { |
| 151 | if (i < limit && segs[i].breakpoint) { |
| 152 | lastBreakpointBytes = bytes + segs[i].bytes; |
| 153 | lastBreakpointId = segs[i].id; |
| 154 | } |
| 155 | bytes += segs[i].bytes; |
| 156 | } |
| 157 | return { bytes: lastBreakpointBytes, at: lastBreakpointId }; |
| 158 | } |
| 159 | |
| 160 | function lastBreakpointIndex(segs: WireSegment[]): number { |
| 161 | let last = -1; |