Preceding returns the largest representable row number that is immediately prior to this one. Think of it like math.NextAfter but for segmented row numbers. Examples: RowNumber 1000.0.0 (defined at 3 levels) is preceded by 999.max.max RowNumber 1000.-1.-1 (defined at 1 level) is preceded by
()
| 156 | // RowNumber 1000.0.0 (defined at 3 levels) is preceded by 999.max.max |
| 157 | // RowNumber 1000.-1.-1 (defined at 1 level) is preceded by 999.-1.-1 |
| 158 | func (t RowNumber) Preceding() RowNumber { |
| 159 | for i := len(t) - 1; i >= 0; i-- { |
| 160 | switch t[i] { |
| 161 | case -1: |
| 162 | continue |
| 163 | case 0: |
| 164 | t[i] = math.MaxInt32 |
| 165 | default: |
| 166 | t[i]-- |
| 167 | return t |
| 168 | } |
| 169 | } |
| 170 | return t |
| 171 | } |
| 172 | |
| 173 | // Releaser can be implemented by types stored in OtherEntries. If the entry |
| 174 | // implements Releaser, iterators will call it when discarding unused values when Seeking. |
no outgoing calls