| 75 | |
| 76 | /** @internal */ |
| 77 | export class Zip<out T0, out T1> implements Supervisor.Supervisor<readonly [T0, T1]> { |
| 78 | readonly _tag = "Zip" |
| 79 | readonly [SupervisorTypeId] = supervisorVariance |
| 80 | |
| 81 | constructor( |
| 82 | readonly left: Supervisor.Supervisor<T0>, |
| 83 | readonly right: Supervisor.Supervisor<T1> |
| 84 | ) { |
| 85 | } |
| 86 | |
| 87 | get value(): Effect.Effect<[T0, T1]> { |
| 88 | return core.zip(this.left.value, this.right.value) |
| 89 | } |
| 90 | |
| 91 | onStart<A, E, R>( |
| 92 | context: Context.Context<R>, |
| 93 | effect: Effect.Effect<A, E, R>, |
| 94 | parent: Option.Option<Fiber.RuntimeFiber<any, any>>, |
| 95 | fiber: Fiber.RuntimeFiber<A, E> |
| 96 | ): void { |
| 97 | this.left.onStart(context, effect, parent, fiber) |
| 98 | this.right.onStart(context, effect, parent, fiber) |
| 99 | } |
| 100 | |
| 101 | onEnd<A, E>(value: Exit.Exit<A, E>, fiber: Fiber.RuntimeFiber<A, E>): void { |
| 102 | this.left.onEnd(value, fiber) |
| 103 | this.right.onEnd(value, fiber) |
| 104 | } |
| 105 | |
| 106 | onEffect<A, E>(fiber: Fiber.RuntimeFiber<A, E>, effect: Effect.Effect<any, any, any>): void { |
| 107 | this.left.onEffect(fiber, effect) |
| 108 | this.right.onEffect(fiber, effect) |
| 109 | } |
| 110 | |
| 111 | onSuspend<A, E>(fiber: Fiber.RuntimeFiber<A, E>): void { |
| 112 | this.left.onSuspend(fiber) |
| 113 | this.right.onSuspend(fiber) |
| 114 | } |
| 115 | |
| 116 | onResume<A, E>(fiber: Fiber.RuntimeFiber<A, E>): void { |
| 117 | this.left.onResume(fiber) |
| 118 | this.right.onResume(fiber) |
| 119 | } |
| 120 | |
| 121 | map<B>(f: (a: [T0, T1]) => B): Supervisor.Supervisor<B> { |
| 122 | return new ProxySupervisor(this, pipe(this.value, core.map(f))) |
| 123 | } |
| 124 | |
| 125 | zip<A>(right: Supervisor.Supervisor<A>): Supervisor.Supervisor<[[T0, T1], A]> { |
| 126 | return new Zip(this, right) |
| 127 | } |
| 128 | } |
| 129 | |
| 130 | /** @internal */ |
| 131 | export const isZip = (self: unknown): self is Zip<any, any> => |
nothing calls this directly
no outgoing calls
no test coverage detected