( acquire: Effect.Effect<A, E, R>, use: (a: A) => Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>, release: (a: A, exit: Exit.Exit<OutDone, OutErr>) => Effect.Effect<unknown> )
| 562 | * `release` is not registered. |
| 563 | * |
| 564 | * **Example** (Managing resources with acquire-use-release) |
| 565 | * |
| 566 | * ```ts import.meta.vitest |
| 567 | * import { Channel, Effect } from "effect" |
| 568 | * |
| 569 | * const released: Array<string> = [] |
| 570 | * const channel = Channel.acquireUseRelease( |
| 571 | * Effect.succeed("resource"), |
| 572 | * (resource) => Channel.succeed(resource.toUpperCase()), |
| 573 | * (resource, exit) => Effect.sync(() => released.push(resource)) |
| 574 | * ) |
| 575 | * const observed = [await Effect.runPromise(Channel.runCollect(channel)), released] // => [["RESOURCE"], ["resource"]] |
| 576 | * ``` |
| 577 | * |
| 578 | * @category constructors |
| 579 | * @since 2.0.0 |
| 580 | */ |
| 581 | export const acquireUseRelease = <A, E, R, OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>( |
| 582 | acquire: Effect.Effect<A, E, R>, |
| 583 | use: (a: A) => Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>, |
no test coverage detected
searching dependent graphs…