ZManaged

zio.managed.ZManaged$
See theZManaged companion class
object ZManaged

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Classlikes

final class EnvironmentWithManagedPartiallyApplied[R](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class EnvironmentWithPartiallyApplied[R](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class EnvironmentWithZIOPartiallyApplied[R](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
object Finalizer

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class IfManaged[R, E](b: () => ZManaged[R, E, Boolean]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
abstract class PreallocationScope

A scope in which resources can be safely preallocated. Passing a ZManaged to the apply method will create (inside an effect) a managed resource which is already acquired and cannot fail.

A scope in which resources can be safely preallocated. Passing a ZManaged to the apply method will create (inside an effect) a managed resource which is already acquired and cannot fail.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
final class ProvideSomeLayer[R0, -R, +E, +A](self: ZManaged[R, E, A]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final implicit class RefineToOrDieOps[R, E <: Throwable, A](self: ZManaged[R, E, A]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
abstract class ReleaseMap extends Serializable

A ReleaseMap represents the finalizers associated with a scope.

A ReleaseMap represents the finalizers associated with a scope.

The design of ReleaseMap is inspired by ResourceT, written by Michael Snoyman @snoyberg. (https://github.com/snoyberg/conduit/blob/master/resourcet/Control/Monad/Trans/Resource/Internal.hs)

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object ReleaseMap

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
abstract class Scope

A scope in which ZManaged values can be safely allocated. Passing a managed resource to the apply method will return an effect that allocates the resource and returns it with an early-release handle.

A scope in which ZManaged values can be safely allocated. Passing a managed resource to the apply method will return an effect that allocates the resource and returns it with an early-release handle.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
final class ScopedPartiallyApplied[R](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class ServiceAtPartiallyApplied[Service](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class ServiceWithManagedPartiallyApplied[Service](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class ServiceWithPartiallyApplied[Service](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class ServiceWithZIOPartiallyApplied[Service](dummy: Boolean) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class UnlessManaged[R, E](b: () => ZManaged[R, E, Boolean]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class UpdateService[-R, +E, +A, M](self: ZManaged[R, E, A]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class UpdateServiceAt[-R, +E, +A, Service](self: ZManaged[R, E, A]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
final class WhenManaged[R, E](b: () => ZManaged[R, E, Boolean]) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any

Attributes

Companion:
trait
Graph
Supertypes
Self type
sealed trait ZManagedConstructor[Input]

A ZManagedConstructor[Input] knows how to construct a ZManaged value from an input of type Input. This allows the type of the ZManaged value constructed to depend on Input.

A ZManagedConstructor[Input] knows how to construct a ZManaged value from an input of type Input. This allows the type of the ZManaged value constructed to depend on Input.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Types

type Finalizer = Exit[Any, Any] => UIO[Any]

A finalizer used in a ReleaseMap. The Exit value passed to it is the result of executing ZManaged#use or an arbitrary value passed into ReleaseMap#release.

A finalizer used in a ReleaseMap. The Exit value passed to it is the result of executing ZManaged#use or an arbitrary value passed into ReleaseMap#release.

Attributes

Value members

Concrete methods

def absolve[R, E, A](v: => ZManaged[R, E, Either[E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Submerges the error case of an Either into the ZManaged. The inverse operation of ZManaged.either.

Submerges the error case of an Either into the ZManaged. The inverse operation of ZManaged.either.

Attributes

def acquireRelease[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: => ZIO[R1, Nothing, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseAttempt[A](acquire: => A)(release: => Any)(implicit trace: Trace): ZManaged[Any, Throwable, A]

Lifts a synchronous effect into ZManaged[R, Throwable, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Lifts a synchronous effect into ZManaged[R, Throwable, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseAttemptWith[A](acquire: => A)(release: A => Any)(implicit trace: Trace): ZManaged[Any, Throwable, A]

Lifts a synchronous effect into ZManaged[R, Throwable, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Lifts a synchronous effect into ZManaged[R, Throwable, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseExit[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: Exit[Any, Any] => ZIO[R1, Nothing, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not need access to the resource but handles Exit. The acquire and release actions will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not need access to the resource but handles Exit. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseExitWith[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: (A, Exit[Any, Any]) => ZIO[R1, Nothing, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that handles Exit. The acquire and release actions will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that handles Exit. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseInterruptible[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: => ZIO[R1, Nothing, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not require access to the resource. The acquire action will be performed interruptibly, while release will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action that does not require access to the resource. The acquire action will be performed interruptibly, while release will be performed uninterruptibly.

Attributes

def acquireReleaseInterruptibleWith[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: A => URIO[R1, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action. The acquire action will be performed interruptibly, while release will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action. The acquire action will be performed interruptibly, while release will be performed uninterruptibly.

Attributes

def acquireReleaseSucceed[A](acquire: => A)(release: => Any)(implicit trace: Trace): ZManaged[Any, Nothing, A]

Lifts a synchronous effect that does not throw exceptions into a ZManaged[Any, Nothing, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Lifts a synchronous effect that does not throw exceptions into a ZManaged[Any, Nothing, A] with a release action that does not need access to the resource. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseSucceedWith[A](acquire: => A)(release: A => Any)(implicit trace: Trace): ZManaged[Any, Nothing, A]

Lifts a synchronous effect that does not throw exceptions into a ZManaged[Any, Nothing, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Lifts a synchronous effect that does not throw exceptions into a ZManaged[Any, Nothing, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Attributes

def acquireReleaseWith[R, R1 <: R, E, A](acquire: => ZIO[R, E, A])(release: A => ZIO[R1, Nothing, Any])(implicit trace: Trace): ZManaged[R1, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with a release action. The acquire and release actions will be performed uninterruptibly.

Attributes

def apply[R, E, A](run0: ZIO[R, E, (Finalizer, A)]): ZManaged[R, E, A]

Creates new ZManaged from a ZIO value that uses a ReleaseMap and returns a resource and a finalizer.

Creates new ZManaged from a ZIO value that uses a ReleaseMap and returns a resource and a finalizer.

The correct usage of this constructor consists of:

  • Properly registering a finalizer in the ReleaseMap as part of the ZIO value;
  • Managing interruption safety - take care to use ZIO.uninterruptible or ZIO.uninterruptibleMask to verify that the finalizer is registered in the ReleaseMap after acquiring the value;
  • Returning the finalizer returned from ReleaseMap#add. This is important to prevent double-finalization.

Attributes

def attempt[A](r: => A)(implicit trace: Trace): ZManaged[Any, Throwable, A]

Lifts a synchronous side-effect into a ZManaged[R, Throwable, A], translating any thrown exceptions into typed failed effects.

Lifts a synchronous side-effect into a ZManaged[R, Throwable, A], translating any thrown exceptions into typed failed effects.

Attributes

def collect[R, E, A, B, Collection <: (Iterable)](in: Collection[A])(f: A => ZManaged[R, Option[E], B])(implicit bf: BuildFrom[Collection[A], B, Collection[B]], trace: Trace): ZManaged[R, E, Collection[B]]

Evaluate each effect in the structure from left to right, collecting the the successful values and discarding the empty cases. For a parallel version, see collectPar.

Evaluate each effect in the structure from left to right, collecting the the successful values and discarding the empty cases. For a parallel version, see collectPar.

Attributes

def collectAll[R, E, A, Collection <: (Iterable)](ms: Collection[ZManaged[R, E, A]])(implicit bf: BuildFrom[Collection[ZManaged[R, E, A]], A, Collection[A]], trace: Trace): ZManaged[R, E, Collection[A]]

Evaluate each effect in the structure from left to right, and collect the results. For a parallel version, see collectAllPar.

Evaluate each effect in the structure from left to right, and collect the results. For a parallel version, see collectAllPar.

Attributes

def collectAllDiscard[R, E, A](ms: => Iterable[ZManaged[R, E, A]])(implicit trace: Trace): ZManaged[R, E, Unit]

Evaluate each effect in the structure from left to right, and discard the results. For a parallel version, see collectAllParDiscard.

Evaluate each effect in the structure from left to right, and discard the results. For a parallel version, see collectAllParDiscard.

Attributes

def collectAllPar[R, E, A, Collection <: (Iterable)](as: Collection[ZManaged[R, E, A]])(implicit bf: BuildFrom[Collection[ZManaged[R, E, A]], A, Collection[A]], trace: Trace): ZManaged[R, E, Collection[A]]

Evaluate each effect in the structure in parallel, and collect the results. For a sequential version, see collectAll.

Evaluate each effect in the structure in parallel, and collect the results. For a sequential version, see collectAll.

Attributes

def collectAllParDiscard[R, E, A](as: => Iterable[ZManaged[R, E, A]])(implicit trace: Trace): ZManaged[R, E, Unit]

Evaluate each effect in the structure in parallel, and discard the results. For a sequential version, see collectAllDiscard.

Evaluate each effect in the structure in parallel, and discard the results. For a sequential version, see collectAllDiscard.

Attributes

def collectFirst[R, E, A, B](as: => Iterable[A])(f: A => ZManaged[R, E, Option[B]])(implicit trace: Trace): ZManaged[R, E, Option[B]]

Collects the first element of the Iterable[A] for which the effectual function f returns Some.

Collects the first element of the Iterable[A] for which the effectual function f returns Some.

Attributes

def collectPar[R, E, A, B, Collection <: (Iterable)](in: Collection[A])(f: A => ZManaged[R, Option[E], B])(implicit bf: BuildFrom[Collection[A], B, Collection[B]], trace: Trace): ZManaged[R, E, Collection[B]]

Evaluate each effect in the structure in parallel, collecting the the successful values and discarding the empty cases.

Evaluate each effect in the structure in parallel, collecting the the successful values and discarding the empty cases.

Attributes

def cond[E, A](predicate: => Boolean, result: => A, error: => E)(implicit trace: Trace): Managed[E, A]

Similar to Either.cond, evaluate the predicate, return the given A as success if predicate returns true, and the given E as error otherwise

Similar to Either.cond, evaluate the predicate, return the given A as success if predicate returns true, and the given E as error otherwise

Attributes

def die(t: => Throwable)(implicit trace: Trace): ZManaged[Any, Nothing, Nothing]

Returns an effect that dies with the specified Throwable. This method can be used for terminating a fiber because a defect has been detected in the code.

Returns an effect that dies with the specified Throwable. This method can be used for terminating a fiber because a defect has been detected in the code.

Attributes

def dieMessage(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Nothing]

Returns an effect that dies with a java.lang.RuntimeException having the specified text message. This method can be used for terminating a fiber because a defect has been detected in the code.

Returns an effect that dies with a java.lang.RuntimeException having the specified text message. This method can be used for terminating a fiber because a defect has been detected in the code.

Attributes

def done[E, A](r: => Exit[E, A])(implicit trace: Trace): ZManaged[Any, E, A]

Returns an effect from a lazily evaluated zio.Exit value.

Returns an effect from a lazily evaluated zio.Exit value.

Attributes

def environment[R](implicit trace: Trace): ZManaged[R, Nothing, ZEnvironment[R]]

Accesses the whole environment of the effect.

Accesses the whole environment of the effect.

Attributes

Create a managed that accesses the environment.

Create a managed that accesses the environment.

Attributes

Create a managed that accesses the environment.

Create a managed that accesses the environment.

Attributes

Create a managed that accesses the environment.

Create a managed that accesses the environment.

Attributes

def exists[R, E, A](as: => Iterable[A])(f: A => ZManaged[R, E, Boolean])(implicit trace: Trace): ZManaged[R, E, Boolean]

Determines whether any element of the Iterable[A] satisfies the effectual predicate f.

Determines whether any element of the Iterable[A] satisfies the effectual predicate f.

Attributes

def fail[E](error: => E)(implicit trace: Trace): ZManaged[Any, E, Nothing]

Returns an effect that models failure with the specified error. The moral equivalent of throw for pure code.

Returns an effect that models failure with the specified error. The moral equivalent of throw for pure code.

Attributes

def failCause[E](cause: => Cause[E])(implicit trace: Trace): ZManaged[Any, E, Nothing]

Returns an effect that models failure with the specified Cause.

Returns an effect that models failure with the specified Cause.

Attributes

def fiberId(implicit trace: Trace): ZManaged[Any, Nothing, FiberId]

Returns an effect that succeeds with the FiberId of the caller.

Returns an effect that succeeds with the FiberId of the caller.

Attributes

def finalizer[R](f: => URIO[R, Any])(implicit trace: Trace): ZManaged[R, Nothing, Unit]

Creates an effect that only executes the provided finalizer as its release action.

Creates an effect that only executes the provided finalizer as its release action.

Attributes

def finalizerExit[R](f: Exit[Any, Any] => URIO[R, Any])(implicit trace: Trace): ZManaged[R, Nothing, Unit]

Creates an effect that only executes the provided function as its release action.

Creates an effect that only executes the provided function as its release action.

Attributes

def finalizerRef[R](initial: => Finalizer)(implicit trace: Trace): ZManaged[R, Nothing, Ref[Finalizer]]

Creates an effect that executes a finalizer stored in a Ref. The Ref is yielded as the result of the effect, allowing for control flows that require mutating finalizers.

Creates an effect that executes a finalizer stored in a Ref. The Ref is yielded as the result of the effect, allowing for control flows that require mutating finalizers.

Attributes

def firstSuccessOf[R, E, A](first: => ZManaged[R, E, A], rest: => Iterable[ZManaged[R, E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Returns a managed resource that attempts to acquire the first managed resource and in case of failure, attempts to acquire each of the specified managed resources in order until one of them is successfully acquired, ensuring that the acquired resource is properly released after being used.

Returns a managed resource that attempts to acquire the first managed resource and in case of failure, attempts to acquire each of the specified managed resources in order until one of them is successfully acquired, ensuring that the acquired resource is properly released after being used.

Attributes

def flatten[R, E, A](zManaged: => ZManaged[R, E, ZManaged[R, E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Returns an effect that performs the outer effect first, followed by the inner effect, yielding the value of the inner effect.

Returns an effect that performs the outer effect first, followed by the inner effect, yielding the value of the inner effect.

This method can be used to "flatten" nested effects.

Attributes

def flattenZIO[R, E, A](zManaged: => ZManaged[R, E, ZIO[R, E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Returns an effect that performs the outer effect first, followed by the inner effect, yielding the value of the inner effect.

Returns an effect that performs the outer effect first, followed by the inner effect, yielding the value of the inner effect.

This method can be used to "flatten" nested effects.

Attributes

def foldLeft[R, E, S, A](in: => Iterable[A])(zero: => S)(f: (S, A) => ZManaged[R, E, S])(implicit trace: Trace): ZManaged[R, E, S]

Folds an Iterable[A] using an effectual function f, working sequentially from left to right.

Folds an Iterable[A] using an effectual function f, working sequentially from left to right.

Attributes

def forall[R, E, A](as: => Iterable[A])(f: A => ZManaged[R, E, Boolean])(implicit trace: Trace): ZManaged[R, E, Boolean]

Determines whether all elements of the Iterable[A] satisfy the effectual predicate f.

Determines whether all elements of the Iterable[A] satisfy the effectual predicate f.

Attributes

def foreach[R, E, A1, A2, Collection <: (Iterable)](in: Collection[A1])(f: A1 => ZManaged[R, E, A2])(implicit bf: BuildFrom[Collection[A1], A2, Collection[A2]], trace: Trace): ZManaged[R, E, Collection[A2]]

Applies the function f to each element of the Collection[A] and returns the results in a new Collection[B].

Applies the function f to each element of the Collection[A] and returns the results in a new Collection[B].

For a parallel version of this method, see foreachPar. If you do not need the results, see foreachDiscard for a more efficient implementation.

Attributes

final def foreach[R, E, A1, A2](in: Option[A1])(f: A1 => ZManaged[R, E, A2])(implicit trace: Trace): ZManaged[R, E, Option[A2]]

Applies the function f if the argument is non-empty and returns the results in a new Option[A2].

Applies the function f if the argument is non-empty and returns the results in a new Option[A2].

Attributes

def foreachDiscard[R, E, A](as: => Iterable[A])(f: A => ZManaged[R, E, Any])(implicit trace: Trace): ZManaged[R, E, Unit]

Applies the function f to each element of the Iterable[A] and runs produced effects sequentially.

Applies the function f to each element of the Iterable[A] and runs produced effects sequentially.

Equivalent to foreach(as)(f).unit, but without the cost of building the list of results.

Attributes

final def foreachExec[R, E, A, B, Collection <: (Iterable)](as: Collection[A])(exec: => ExecutionStrategy)(f: A => ZManaged[R, E, B])(implicit bf: BuildFrom[Collection[A], B, Collection[B]], trace: Trace): ZManaged[R, E, Collection[B]]

Applies the function f to each element of the Collection[A] and returns the result in a new Collection[B] using the specified execution strategy.

Applies the function f to each element of the Collection[A] and returns the result in a new Collection[B] using the specified execution strategy.

Attributes

def foreachPar[R, E, A1, A2, Collection <: (Iterable)](as: Collection[A1])(f: A1 => ZManaged[R, E, A2])(implicit bf: BuildFrom[Collection[A1], A2, Collection[A2]], trace: Trace): ZManaged[R, E, Collection[A2]]

Applies the function f to each element of the Collection[A] in parallel, and returns the results in a new Collection[B].

Applies the function f to each element of the Collection[A] in parallel, and returns the results in a new Collection[B].

For a sequential version of this method, see foreach.

Attributes

def foreachParDiscard[R, E, A](as: => Iterable[A])(f: A => ZManaged[R, E, Any])(implicit trace: Trace): ZManaged[R, E, Unit]

Applies the function f to each element of the Iterable[A] and runs produced effects in parallel, discarding the results.

Applies the function f to each element of the Iterable[A] and runs produced effects in parallel, discarding the results.

For a sequential version of this method, see foreachDiscard.

Attributes

def from[Input](input: => Input)(implicit constructor: ZManagedConstructor[Input], trace: Trace): Out

Constructs a ZManaged value of the appropriate type for the specified input.

Constructs a ZManaged value of the appropriate type for the specified input.

Attributes

def fromAutoCloseable[R, E, A <: AutoCloseable](fa: => ZIO[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Creates a ZManaged from an AutoCloseable resource. The resource's close method will be used as the release action.

Creates a ZManaged from an AutoCloseable resource. The resource's close method will be used as the release action.

Attributes

def fromEither[E, A](v: => Either[E, A])(implicit trace: Trace): ZManaged[Any, E, A]

Lifts an Either into a ZManaged value.

Lifts an Either into a ZManaged value.

Attributes

def fromOption[A](v: => Option[A])(implicit trace: Trace): ZManaged[Any, Option[Nothing], A]

Lifts an Option into a ZManaged but preserves the error as an option in the error channel, making it easier to compose in some scenarios.

Lifts an Option into a ZManaged but preserves the error as an option in the error channel, making it easier to compose in some scenarios.

Attributes

def fromReservation[R, E, A](reservation: => Reservation[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Lifts a pure Reservation[R, E, A] into ZManaged[R, E, A]. The acquisition step is performed interruptibly.

Lifts a pure Reservation[R, E, A] into ZManaged[R, E, A]. The acquisition step is performed interruptibly.

Attributes

def fromReservationZIO[R, E, A](reservation: => ZIO[R, E, Reservation[R, E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Creates a ZManaged from a Reservation produced by an effect. Evaluating the effect that produces the reservation will be performed uninterruptibly, while the acquisition step of the reservation will be performed interruptibly. The release step will be performed uninterruptibly as usual.

Creates a ZManaged from a Reservation produced by an effect. Evaluating the effect that produces the reservation will be performed uninterruptibly, while the acquisition step of the reservation will be performed interruptibly. The release step will be performed uninterruptibly as usual.

This two-phase acquisition allows for resource acquisition flows that can be safely interrupted and released.

Attributes

def fromTry[A](value: => Try[A])(implicit trace: Trace): TaskManaged[A]

Lifts a Try into a ZManaged.

Lifts a Try into a ZManaged.

Attributes

def fromZIO[R, E, A](fa: => ZIO[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with no release action. The effect will be performed interruptibly.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with no release action. The effect will be performed interruptibly.

Attributes

def fromZIOUninterruptible[R, E, A](fa: => ZIO[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with no release action. The effect will be performed uninterruptibly. You usually want the ZManaged.fromZIO variant.

Lifts a ZIO[R, E, A] into ZManaged[R, E, A] with no release action. The effect will be performed uninterruptibly. You usually want the ZManaged.fromZIO variant.

Attributes

def ifManaged[R, E](b: => ZManaged[R, E, Boolean]): IfManaged[R, E]

Runs onTrue if the result of b is true and onFalse otherwise.

Runs onTrue if the result of b is true and onFalse otherwise.

Attributes

def interrupt(implicit trace: Trace): ZManaged[Any, Nothing, Nothing]

Returns an effect that is interrupted as if by the fiber calling this method.

Returns an effect that is interrupted as if by the fiber calling this method.

Attributes

def interruptAs(fiberId: => FiberId)(implicit trace: Trace): ZManaged[Any, Nothing, Nothing]

Returns an effect that is interrupted as if by the specified fiber.

Returns an effect that is interrupted as if by the specified fiber.

Attributes

def iterate[R, E, S](initial: => S)(cont: S => Boolean)(body: S => ZManaged[R, E, S])(implicit trace: Trace): ZManaged[R, E, S]

Iterates with the specified effectual function. The moral equivalent of:

Iterates with the specified effectual function. The moral equivalent of:

var s = initial

while (cont(s)) {
 s = body(s)
}

s

Attributes

def lock(executor: => Executor)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Returns a managed effect that describes shifting to the specified executor as the acquire action and shifting back to the original executor as the release action.

Returns a managed effect that describes shifting to the specified executor as the acquire action and shifting back to the original executor as the release action.

Attributes

def log(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the current log level.

Logs the specified message at the current log level.

Attributes

def logAnnotate(key: => String, value: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Annotates each log in managed effects composed after this.

Annotates each log in managed effects composed after this.

Attributes

def logAnnotations(implicit trace: Trace): ZManaged[Any, Nothing, Map[String, String]]

Retrieves current log annotations.

Retrieves current log annotations.

Attributes

def logDebug(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the debug log level.

Logs the specified message at the debug log level.

Attributes

def logError(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the error log level.

Logs the specified message at the error log level.

Attributes

def logErrorCause(cause: => Cause[Any])(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified cause as an error.

Logs the specified cause as an error.

Attributes

def logFatal(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the fatal log level.

Logs the specified message at the fatal log level.

Attributes

def logInfo(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the informational log level.

Logs the specified message at the informational log level.

Attributes

def logLevel(level: LogLevel)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Sets the log level for managed effects composed after this.

Sets the log level for managed effects composed after this.

Attributes

def logSpan(label: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Adjusts the label for the logging span for managed effects composed after this.

Adjusts the label for the logging span for managed effects composed after this.

Attributes

def logTrace(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the trace log level.

Logs the specified message at the trace log level.

Attributes

def logWarning(message: => String)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Logs the specified message at the warning log level.

Logs the specified message at the warning log level.

Attributes

def loop[R, E, A, S](initial: => S)(cont: S => Boolean, inc: S => S)(body: S => ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, E, List[A]]

Loops with the specified effectual function, collecting the results into a list. The moral equivalent of:

Loops with the specified effectual function, collecting the results into a list. The moral equivalent of:

var s  = initial
var as = List.empty[A]

while (cont(s)) {
 as = body(s) :: as
 s  = inc(s)
}

as.reverse

Attributes

def loopDiscard[R, E, S](initial: => S)(cont: S => Boolean, inc: S => S)(body: S => ZManaged[R, E, Any])(implicit trace: Trace): ZManaged[R, E, Unit]

Loops with the specified effectual function purely for its effects. The moral equivalent of:

Loops with the specified effectual function purely for its effects. The moral equivalent of:

var s = initial

while (cont(s)) {
 body(s)
 s = inc(s)
}

Attributes

def memoize[R, E, A, B](f: A => ZManaged[R, E, B])(implicit trace: Trace): ZManaged[Any, Nothing, A => ZIO[R, E, B]]

Returns a memoized version of the specified resourceful function in the context of a managed scope. Each time the memoized function is evaluated a new resource will be acquired, if the function has not already been evaluated with that input, or else the previously acquired resource will be returned. All resources acquired by evaluating the function will be released at the end of the scope.

Returns a memoized version of the specified resourceful function in the context of a managed scope. Each time the memoized function is evaluated a new resource will be acquired, if the function has not already been evaluated with that input, or else the previously acquired resource will be returned. All resources acquired by evaluating the function will be released at the end of the scope.

Attributes

def mergeAll[R, E, A, B](in: => Iterable[ZManaged[R, E, A]])(zero: => B)(f: (B, A) => B)(implicit trace: Trace): ZManaged[R, E, B]

Merges an Iterable[ZManaged] to a single ZManaged, working sequentially.

Merges an Iterable[ZManaged] to a single ZManaged, working sequentially.

Attributes

def mergeAllPar[R, E, A, B](in: => Iterable[ZManaged[R, E, A]])(zero: => B)(f: (B, A) => B)(implicit trace: Trace): ZManaged[R, E, B]

Merges an Iterable[ZManaged] to a single ZManaged, working in parallel.

Merges an Iterable[ZManaged] to a single ZManaged, working in parallel.

Due to the parallel nature of this combinator, f must be both:

  • commutative: f(a, b) == f(b, a)
  • associative: f(a, f(b, c)) == f(f(a, b), c)

Attributes

def never(implicit trace: Trace): ZManaged[Any, Nothing, Nothing]

Returns a ZManaged that never acquires a resource.

Returns a ZManaged that never acquires a resource.

Attributes

def onExecutor(executor: => Executor)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Returns a managed effect that describes shifting to the specified executor as the acquire action and shifting back to the original executor as the release action.

Returns a managed effect that describes shifting to the specified executor as the acquire action and shifting back to the original executor as the release action.

Attributes

def parallelism(implicit trace: Trace): ZManaged[Any, Nothing, Option[Int]]

Retrieves the maximum number of fibers for parallel operators or None if it is unbounded.

Retrieves the maximum number of fibers for parallel operators or None if it is unbounded.

Attributes

def preallocationScope(implicit trace: Trace): Managed[Nothing, PreallocationScope]

Creates a scope in which resources can be safely preallocated.

Creates a scope in which resources can be safely preallocated.

Attributes

def provideLayer[RIn, E, ROut, RIn2, ROut2](layer: ZLayer[RIn, E, ROut])(managed: ZManaged[ROut & RIn2, E, ROut2])(implicit ev: Tag[RIn2], tag: Tag[ROut], trace: Trace): ZManaged[RIn & RIn2, E, ROut2]
def reduceAll[R, E, A](a: => ZManaged[R, E, A], as: => Iterable[ZManaged[R, E, A]])(f: (A, A) => A)(implicit trace: Trace): ZManaged[R, E, A]

Reduces an Iterable[IO] to a single IO, working sequentially.

Reduces an Iterable[IO] to a single IO, working sequentially.

Attributes

def reduceAllPar[R, E, A](a: => ZManaged[R, E, A], as: => Iterable[ZManaged[R, E, A]])(f: (A, A) => A)(implicit trace: Trace): ZManaged[R, E, A]

Reduces an Iterable[IO] to a single IO, working in parallel.

Reduces an Iterable[IO] to a single IO, working in parallel.

Attributes

def releaseMap(implicit trace: Trace): ZManaged[Any, Nothing, ReleaseMap]

Provides access to the entire map of resources allocated by this ZManaged.

Provides access to the entire map of resources allocated by this ZManaged.

Attributes

def runtime[R](implicit trace: Trace): ZManaged[R, Nothing, Runtime[R]]

Returns an ZManaged that accesses the runtime, which can be used to (unsafely) execute tasks. This is useful for integration with legacy code that must call back into ZIO code.

Returns an ZManaged that accesses the runtime, which can be used to (unsafely) execute tasks. This is useful for integration with legacy code that must call back into ZIO code.

Attributes

def sandbox[R, E, A](v: ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, Cause[E], A]
def scope(implicit trace: Trace): Managed[Nothing, Scope]

Creates a scope in which resources can be safely allocated into together with a release action.

Creates a scope in which resources can be safely allocated into together with a release action.

Attributes

def service[A : Tag](implicit evidence$2: Tag[A], trace: Trace): ZManaged[A, Nothing, A]

Accesses the specified service in the environment of the effect.

Accesses the specified service in the environment of the effect.

Attributes

def serviceAt[Service]: ServiceAtPartiallyApplied[Service]

Accesses the service corresponding to the specified key in the environment.

Accesses the service corresponding to the specified key in the environment.

Attributes

Accesses the specified service in the environment of the effect.

Accesses the specified service in the environment of the effect.

def foo(int: Int) = ZManaged.serviceWith[Foo](_.foo(int))

Attributes

Effectfully accesses the specified managed service in the environment of the effect .

Effectfully accesses the specified managed service in the environment of the effect .

Especially useful for creating "accessor" methods on Services' companion objects accessing managed resources.

trait Foo {
 def start(): ZManaged[Any, Nothing, Unit]
}

def start: ZManaged[Foo, Nothing, Unit] =
 ZManaged.serviceWithManaged[Foo](_.start())

Attributes

Effectfully accesses the specified service in the environment of the effect.

Effectfully accesses the specified service in the environment of the effect.

def foo(int: Int) = ZManaged.serviceWith[Foo](_.foo(int))

Attributes

def shift(executor: => Executor)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Returns a managed effect that describes shifting to the specified executor as the acquire action with no release action.

Returns a managed effect that describes shifting to the specified executor as the acquire action with no release action.

Attributes

def some[A](a: => A)(implicit trace: Trace): UManaged[Option[A]]

Returns an effect with the optional value.

Returns an effect with the optional value.

Attributes

def succeed[A](r: => A)(implicit trace: Trace): ZManaged[Any, Nothing, A]

Lifts a lazy, pure value into a Managed.

Lifts a lazy, pure value into a Managed.

Attributes

def suspend[R, E, A](zManaged: => ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Returns a lazily constructed Managed.

Returns a lazily constructed Managed.

Attributes

def switchable[R, E, A](implicit trace: Trace): ZManaged[R, Nothing, ZManaged[R, E, A] => ZIO[R, E, A]]

Returns a ZManaged value that represents a managed resource that can be safely swapped within the scope of the ZManaged. The function provided inside the ZManaged can be used to switch the resource currently in use.

Returns a ZManaged value that represents a managed resource that can be safely swapped within the scope of the ZManaged. The function provided inside the ZManaged can be used to switch the resource currently in use.

When the resource is switched, the finalizer for the previous finalizer will be executed uninterruptibly. If the effect executing inside the ZManaged#use is interrupted, the finalizer for the resource currently in use is guaranteed to execute.

This constructor can be used to create an expressive control flow that uses several instances of a managed resource. For example:

def makeWriter: Task[FileWriter]
trait FileWriter {
 def write(data: Int): Task[Unit]
 def close: UIO[Unit]
}

val elements = List(1, 2, 3, 4)
val writingProgram =
 ZManaged.switchable[Any, Throwable, FileWriter].use { switchWriter =>
   ZIO.foreachDiscard(elements) { element =>
     for {
       writer <- switchWriter(makeWriter.toManaged(_.close))
       _      <- writer.write(element)
     } yield ()
   }
 }

Attributes

def unless[R, E, A](b: => Boolean)(zManaged: => ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, E, Option[A]]

The moral equivalent of if (!p) exp

The moral equivalent of if (!p) exp

Attributes

def unlessManaged[R, E](b: => ZManaged[R, E, Boolean]): UnlessManaged[R, E]

The moral equivalent of if (!p) exp when p has side-effects

The moral equivalent of if (!p) exp when p has side-effects

Attributes

def unsandbox[R, E, A](v: => ZManaged[R, Cause[E], A])(implicit trace: Trace): ZManaged[R, E, A]

The inverse operation to sandbox. Submerges the full cause of failure.

The inverse operation to sandbox. Submerges the full cause of failure.

Attributes

def unwrap[R, E, A](fa: => ZIO[R, E, ZManaged[R, E, A]])(implicit trace: Trace): ZManaged[R, E, A]

Unwraps a ZManaged that is inside a ZIO.

Unwraps a ZManaged that is inside a ZIO.

Attributes

def when[R, E, A](b: => Boolean)(zManaged: => ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, E, Option[A]]

The moral equivalent of if (p) exp

The moral equivalent of if (p) exp

Attributes

def whenCase[R, E, A, B](a: => A)(pf: PartialFunction[A, ZManaged[R, E, B]])(implicit trace: Trace): ZManaged[R, E, Option[B]]

Runs an effect when the supplied PartialFunction matches for the given value, otherwise does nothing.

Runs an effect when the supplied PartialFunction matches for the given value, otherwise does nothing.

Attributes

def whenCaseManaged[R, E, A, B](a: => ZManaged[R, E, A])(pf: PartialFunction[A, ZManaged[R, E, B]])(implicit trace: Trace): ZManaged[R, E, Option[B]]

Runs an effect when the supplied PartialFunction matches for the given effectful value, otherwise does nothing.

Runs an effect when the supplied PartialFunction matches for the given effectful value, otherwise does nothing.

Attributes

def whenManaged[R, E](b: => ZManaged[R, E, Boolean]): WhenManaged[R, E]

The moral equivalent of if (p) exp when p has side-effects

The moral equivalent of if (p) exp when p has side-effects

Attributes

def withChildren[R, E, A](get: UIO[Chunk[Runtime[Any, Any]]] => ZManaged[R, E, A])(implicit trace: Trace): ZManaged[R, E, A]

Locally installs a supervisor and an effect that succeeds with all the children that have been forked in the returned effect.

Locally installs a supervisor and an effect that succeeds with all the children that have been forked in the returned effect.

Attributes

def withParallism(n: => Int)(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Returns a managed effect that describes setting the specified maximum number of fibers for parallel operators as the acquire action and setting it back to the original value as the release action.

Returns a managed effect that describes setting the specified maximum number of fibers for parallel operators as the acquire action and setting it back to the original value as the release action.

Attributes

def withParallismUnbounded(implicit trace: Trace): ZManaged[Any, Nothing, Unit]

Returns a managed effect that describes setting an unbounded maximum number of fibers for parallel operators as the acquire action and setting it back to the original value as the release action.

Returns a managed effect that describes setting an unbounded maximum number of fibers for parallel operators as the acquire action and setting it back to the original value as the release action.

Attributes

Concrete fields

val none: Managed[Nothing, Option[Nothing]]

Returns a ZManaged with the empty value.

Returns a ZManaged with the empty value.

Attributes

lazy val unit: ZManaged[Any, Nothing, Unit]

Returns the effect resulting from mapping the success of this effect to unit.

Returns the effect resulting from mapping the success of this effect to unit.

Attributes

Implicits

Implicits

final implicit def RefineToOrDieOps[R, E <: Throwable, A](self: ZManaged[R, E, A]): RefineToOrDieOps[R, E, A]