MCPcopy
hub / github.com/Effect-TS/effect / MapDequeue

Class MapDequeue

packages/effect/src/internal/groupBy.ts:317–396  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

315const mapDequeue = <A, B>(dequeue: Queue.Dequeue<A>, f: (a: A) => B): Queue.Dequeue<B> => new MapDequeue(dequeue, f)
316
317class MapDequeue<in out A, out B> extends Effectable.Class<B> implements Queue.Dequeue<B> {
318 readonly [Queue.DequeueTypeId] = {
319 _Out: (_: never) => _
320 }
321
322 constructor(
323 readonly dequeue: Queue.Dequeue<A>,
324 readonly f: (a: A) => B
325 ) {
326 super()
327 }
328
329 capacity(): number {
330 return Queue.capacity(this.dequeue)
331 }
332
333 get size(): Effect.Effect<number> {
334 return Queue.size(this.dequeue)
335 }
336
337 unsafeSize(): Option.Option<number> {
338 return this.dequeue.unsafeSize()
339 }
340
341 get awaitShutdown(): Effect.Effect<void> {
342 return Queue.awaitShutdown(this.dequeue)
343 }
344
345 isActive(): boolean {
346 return this.dequeue.isActive()
347 }
348
349 get isShutdown(): Effect.Effect<boolean> {
350 return Queue.isShutdown(this.dequeue)
351 }
352
353 get shutdown(): Effect.Effect<void> {
354 return Queue.shutdown(this.dequeue)
355 }
356
357 get isFull(): Effect.Effect<boolean> {
358 return Queue.isFull(this.dequeue)
359 }
360
361 get isEmpty(): Effect.Effect<boolean> {
362 return Queue.isEmpty(this.dequeue)
363 }
364
365 get take(): Effect.Effect<B> {
366 return pipe(Queue.take(this.dequeue), Effect.map((a) => this.f(a)))
367 }
368
369 get takeAll(): Effect.Effect<Chunk.Chunk<B>> {
370 return pipe(Queue.takeAll(this.dequeue), Effect.map(Chunk.map((a) => this.f(a))))
371 }
372
373 takeUpTo(max: number): Effect.Effect<Chunk.Chunk<B>> {
374 return pipe(Queue.takeUpTo(this.dequeue, max), Effect.map(Chunk.map((a) => this.f(a))))

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected