tonivade / purefun

Functional Programming library for Java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add managed resources to ZIO and IO

tonivade opened this issue · comments

Something like this

class Resource<A> {
  IO<A> acquire;
  Consumer1<A> release;

  Resource(IO<A> acquire, Consumer1<A> release) {
    this.acquire = acquire;
    this.release = release;
  }

  public <B> IO<B> use(Function1<A, IO<B>> use) {
    return IO.bracket(acquire, use, release);
  }
}