bracket<ENV, A, B> function
ReaderTask<ENV, B> Function(ReaderTask<ENV, A> )
bracket<ENV, A, B>({
- required ReaderTask<
ENV, void> release(- A
- required ReaderTask<
ENV, B> use(- A
Implementation
ReaderTask<ENV, B> Function(ReaderTask<ENV, A>) bracket<ENV, A, B>({
required ReaderTask<ENV, void> Function(A) release,
required ReaderTask<ENV, B> Function(A) use,
}) =>
(acquire) => (env) {
final acquireF = acquire(env);
return () async {
final resource = await acquireF();
try {
return use(resource)(env)();
} finally {
await release(resource)(env)();
}
};
};