class Make_[+F[_], A] extends Make[F, A]

Class-based variant of make_:

class IntRes extends Lifecycle.Make_(IO(1000))(IO.unit)

For binding resources using class syntax in ModuleDef:

val module = new ModuleDef {
  make[Int].fromResource[IntRes]
}
Linear Supertypes
Make[F, A], Basic[F, A], Lifecycle[F, A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Make_
  2. Make
  3. Basic
  4. Lifecycle
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Make_(acquire: => F[A])(release: => F[Unit])

Type Members

  1. final type InnerResource = A
    Definition Classes
    BasicLifecycle

Value Members

  1. final def acquire: F[A]

    The action in F used to acquire the resource.

    The action in F used to acquire the resource.

    Definition Classes
    MakeBasicLifecycle
    Note

    the acquire action is performed *uninterruptibly*, when F is an effect type that supports interruption/cancellation.

  2. final def beforeAcquire[G[x] >: F[x]](f: => G[Unit])(implicit arg0: QuasiApplicative[G]): Lifecycle[G, A]
    Definition Classes
    Lifecycle
  3. final def beforeRelease[G[x] >: F[x]](f: (InnerResource) => G[Unit])(implicit arg0: QuasiApplicative[G]): Lifecycle[G, A]

    Prepend release action to existing

    Prepend release action to existing

    Definition Classes
    Lifecycle
  4. final def catchAll[G[x] >: F[x], B >: A](recover: (Throwable) => Lifecycle[G, B])(implicit arg0: QuasiIO[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  5. final def catchSome[G[x] >: F[x], B >: A](recover: PartialFunction[Throwable, Lifecycle[G, B]])(implicit arg0: QuasiIO[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  6. final def evalMap[G[x] >: F[x], B](f: (A) => G[B])(implicit arg0: QuasiPrimitives[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  7. final def evalTap[G[x] >: F[x]](f: (A) => G[Unit])(implicit arg0: QuasiPrimitives[G]): Lifecycle[G, A]
    Definition Classes
    Lifecycle
  8. final def extract[B >: A](resource: A): Right[Nothing, A]

    Either an action in F or a pure function used to extract the A from the InnerResource

    Either an action in F or a pure function used to extract the A from the InnerResource

    The effect in the Left branch will be performed *interruptibly*, it is not afforded the same kind of safety as acquire and release actions when F is an effect type that supports interruption/cancellation.

    When F is Identity, it doesn't matter whether the output is a Left or Right branch.

    When consuming the output of extract you can use _.fold(identity, F.pure) to convert the Either to F[B]

    Definition Classes
    BasicLifecycle
    See also

    Lifecycle.Basic extract doesn't have to be defined when inheriting from Lifecycle.Basic

  9. final def flatMap[G[x] >: F[x], B](f: (A) => Lifecycle[G, B])(implicit arg0: QuasiPrimitives[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  10. final def flatten[G[x] >: F[x], B](implicit arg0: QuasiPrimitives[G], ev: <:<[A, Lifecycle[G, B]]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  11. final def map[G[x] >: F[x], B](f: (A) => B)(implicit arg0: QuasiFunctor[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  12. final def redeem[G[x] >: F[x], B](onFailure: (Throwable) => Lifecycle[G, B], onSuccess: (A) => Lifecycle[G, B])(implicit arg0: QuasiIO[G]): Lifecycle[G, B]
    Definition Classes
    Lifecycle
  13. final def release(resource: A): F[Unit]

    The action in F used to release, close or deallocate the resource after it has been acquired and used through izumi.distage.model.definition.Lifecycle.SyntaxUse#use.

    The action in F used to release, close or deallocate the resource after it has been acquired and used through izumi.distage.model.definition.Lifecycle.SyntaxUse#use.

    Definition Classes
    MakeBasicLifecycle
    Note

    the release action is performed *uninterruptibly*, when F is an effect type that supports interruption/cancellation.

  14. final def void[G[x] >: F[x]](implicit arg0: QuasiFunctor[G]): Lifecycle[G, Unit]
    Definition Classes
    Lifecycle
  15. final def widen[B >: A]: Lifecycle[F, B]
    Definition Classes
    Lifecycle
    Annotations
    @inline()
  16. final def widenF[G[x] >: F[x]]: Lifecycle[G, A]
    Definition Classes
    Lifecycle
    Annotations
    @inline()
  17. final def wrapAcquire[G[x] >: F[x]](f: (=> G[InnerResource]) => G[InnerResource]): Lifecycle[G, A]

    Wrap acquire action of this resource in another effect, e.g.

    Wrap acquire action of this resource in another effect, e.g. for logging purposes

    Definition Classes
    Lifecycle
  18. final def wrapRelease[G[x] >: F[x]](f: ((InnerResource) => G[Unit], InnerResource) => G[Unit]): Lifecycle[G, A]

    Wrap release action of this resource in another effect, e.g.

    Wrap release action of this resource in another effect, e.g. for logging purposes

    Definition Classes
    Lifecycle