179
}
180
181
>
mergedSlices := make([]Slice, 0, 3)
slice.go
182
>
currentLeftSlice, currentRightSlice := s.splitByRange(incomingSlice.Scope().Range.InclusiveMin)
183
>
mergedSlices = appendMergedSlice(mergedSlices, currentLeftSlice)
184
>
185
>
if currentRightMax := currentRightSlice.Scope().Range.ExclusiveMax; incomingSlice.CanSplitByRange(currentRightMax) {
186
leftIncomingSlice, rightIncomingSlice := incomingSlice.splitByRange(currentRightMax)
187
mergedMidSlice := currentRightSlice.mergeByPredicate(leftIncomingSlice)
188
mergedSlices = appendMergedSlice(mergedSlices, mergedMidSlice)
189
mergedSlices = appendMergedSlice(mergedSlices, rightIncomingSlice)
191
currentMidSlice, currentRightSlice := currentRightSlice.splitByRange(incomingSlice.Scope().Range.ExclusiveMax)
192
mergedMidSlice := currentMidSlice.mergeByPredicate(incomingSlice)