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

Method unsafeOfferAllArray

packages/effect/src/internal/mailbox.ts:155–193  ·  view source on GitHub ↗
(messages: Iterable<A>)

Source from the content-addressed store, hash-verified

153 return Chunk.unsafeFromArray(this.unsafeOfferAllArray(messages))
154 }
155 unsafeOfferAllArray(messages: Iterable<A>): Array<A> {
156 if (this.state._tag !== "Open") {
157 return Arr.fromIterable(messages)
158 } else if (this.capacity === Number.POSITIVE_INFINITY || this.strategy === "sliding") {
159 if (this.messages.length > 0) {
160 this.messagesChunk = Chunk.appendAll(this.messagesChunk, Chunk.unsafeFromArray(this.messages))
161 }
162 if (this.strategy === "sliding") {
163 this.messagesChunk = this.messagesChunk.pipe(
164 Chunk.appendAll(Chunk.fromIterable(messages)),
165 Chunk.takeRight(this.capacity)
166 )
167 } else if (Chunk.isChunk(messages)) {
168 this.messagesChunk = Chunk.appendAll(this.messagesChunk, messages)
169 } else {
170 this.messages = Arr.fromIterable(messages)
171 }
172 this.scheduleReleaseTaker()
173 return []
174 }
175 const free = this.capacity <= 0
176 ? this.state.takers.size
177 : this.capacity - this.messages.length - this.messagesChunk.length
178 if (free === 0) {
179 return Arr.fromIterable(messages)
180 }
181 const remaining: Array<A> = []
182 let i = 0
183 for (const message of messages) {
184 if (i < free) {
185 this.messages.push(message)
186 } else {
187 remaining.push(message)
188 }
189 i++
190 }
191 this.scheduleReleaseTaker()
192 return remaining
193 }
194 fail(error: E) {
195 return this.done(core.exitFail(error))
196 }

Callers 2

offerAllMethod · 0.95
unsafeOfferAllMethod · 0.95

Calls 2

scheduleReleaseTakerMethod · 0.95
pipeMethod · 0.65

Tested by

no test coverage detected