MCPcopy Index your code
hub / github.com/Effect-TS/effect / intersectLoop

Function intersectLoop

packages/effect/src/internal/schedule/intervals.ts:126–145  ·  view source on GitHub ↗
(
  _left: Chunk.Chunk<Interval.Interval>,
  _right: Chunk.Chunk<Interval.Interval>,
  _acc: Chunk.Chunk<Interval.Interval>
)

Source from the content-addressed store, hash-verified

124
125/** @internal */
126const intersectLoop = (
127 _left: Chunk.Chunk<Interval.Interval>,
128 _right: Chunk.Chunk<Interval.Interval>,
129 _acc: Chunk.Chunk<Interval.Interval>
130): Intervals.Intervals => {
131 let left = _left
132 let right = _right
133 let acc = _acc
134 while (Chunk.isNonEmpty(left) && Chunk.isNonEmpty(right)) {
135 const interval = pipe(Chunk.headNonEmpty(left), Interval.intersect(Chunk.headNonEmpty(right)))
136 const intervals = Interval.isEmpty(interval) ? acc : pipe(acc, Chunk.prepend(interval))
137 if (pipe(Chunk.headNonEmpty(left), Interval.lessThan(Chunk.headNonEmpty(right)))) {
138 left = Chunk.tailNonEmpty(left)
139 } else {
140 right = Chunk.tailNonEmpty(right)
141 }
142 acc = intervals
143 }
144 return make(Chunk.reverse(acc))
145}
146
147/** @internal */
148export const start = (self: Intervals.Intervals): number => {

Callers 1

intervals.tsFile · 0.85

Calls 3

makeFunction · 0.70
isEmptyMethod · 0.65
pipeFunction · 0.50

Tested by

no test coverage detected