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

Function takeBetweenUnsafe

packages/effect/src/Queue.ts:1860–1883  ·  view source on GitHub ↗
(
  self: Dequeue<A, E>,
  min: number,
  max: number
)

Source from the content-addressed store, hash-verified

1858}
1859
1860const takeBetweenUnsafe = <A, E>(
1861 self: Dequeue<A, E>,
1862 min: number,
1863 max: number
1864): Exit<Array<A>, E> | undefined => {
1865 if (self.state._tag === "Done") {
1866 return self.state.exit
1867 } else if (max <= 0 || min <= 0) {
1868 return core.exitSucceed([])
1869 } else if (self.capacity <= 0 && self.state.offers.size > 0) {
1870 self.capacity = 1
1871 releaseCapacity(self)
1872 self.capacity = 0
1873 const messages = [MutableList.take(self.messages)!]
1874 releaseCapacity(self)
1875 return core.exitSucceed(messages)
1876 }
1877 min = Math.min(min, self.capacity || 1)
1878 if (min <= self.messages.length) {
1879 const messages = MutableList.takeN(self.messages, max)
1880 releaseCapacity(self)
1881 return core.exitSucceed(messages)
1882 }
1883}
1884
1885const offerRemainingSingle = <A, E>(self: Enqueue<A, E>, message: A) => {
1886 return internalEffect.callback<boolean>((resume) => {

Callers 1

takeBetweenFunction · 0.85

Calls 3

releaseCapacityFunction · 0.85
takeMethod · 0.65
takeNMethod · 0.65

Tested by

no test coverage detected