MCPcopy Create free account
hub / github.com/Effect-TS/effect / range

Function range

packages/effect/src/Stream.ts:1567–1588  ·  view source on GitHub ↗
(
  min: number,
  max: number,
  chunkSize = Channel.DefaultChunkSize
)

Source from the content-addressed store, hash-verified

1565 * @since 2.0.0
1566 */
1567export const range = (
1568 min: number,
1569 max: number,
1570 chunkSize = Channel.DefaultChunkSize
1571): Stream<number> =>
1572 min > max ? empty : fromPull(Effect.sync(() => {
1573 const size = Math.max(1, chunkSize)
1574 let start = min
1575 let done = false
1576 return Effect.suspend(() => {
1577 if (done) return Cause.done()
1578 const remaining = max - start + 1
1579 if (remaining > size) {
1580 const chunk = Arr.range(start, start + size - 1)
1581 start += size
1582 return Effect.succeed(chunk)
1583 }
1584 const chunk = Arr.range(start, start + remaining - 1)
1585 done = true
1586 return Effect.succeed(chunk)
1587 })
1588 }))
1589
1590/**
1591 * The stream that never produces any value or fails with any error.

Callers

nothing calls this directly

Calls 4

fromPullFunction · 0.70
syncMethod · 0.45
doneMethod · 0.45
succeedMethod · 0.45

Tested by

no test coverage detected