Class/Object

zio

ZServiceBuilder

Related Docs: object ZServiceBuilder | package zio

Permalink

sealed abstract class ZServiceBuilder[-RIn, +E, +ROut] extends AnyRef

A ZServiceBuilder[E, A, B] describes how to build one or more services in your application. Services can be injected into effects via ZIO#inject. Effects can require services via ZIO.service."

ServiceBuilder can be thought of as recipes for producing bundles of services, given their dependencies (other services).

Construction of services can be effectful and utilize resources that must be acquired and safely released when the services are done being utilized.

By default service builders are shared, meaning that if the same servicebuilder is used twice the service builder will only be allocated a single time.

Because of their excellent composition properties, service builders are the idiomatic way in ZIO to create services that depend on other services.

Self Type
ZServiceBuilder[RIn, E, ROut]
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ZServiceBuilder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !(implicit ev1: <:<[E, Throwable], ev2: CanFail[E], trace: ZTraceElement): ZServiceBuilder[RIn, Nothing, ROut]

    Permalink

    A symbolic alias for orDie.

  2. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def +!+[E1 >: E, RIn2, ROut1 >: ROut, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2])(implicit ev: UnionAll[ROut1, ROut2]): ZServiceBuilder[RIn with RIn2, E1, ROut1 with ROut2]

    Permalink
  5. final def ++[E1 >: E, RIn2, ROut1 >: ROut, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2])(implicit ev: Union[ROut1, ROut2], tag: zio.Tag[ROut2]): ZServiceBuilder[RIn with RIn2, E1, ROut1 with ROut2]

    Permalink

    Combines this service builder with the specified service builder, producing a new service builder that has the inputs and outputs of = both.

  6. final def <&>[E1 >: E, RIn2, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2]): ZServiceBuilder[RIn with RIn2, E1, (ROut, ROut2)]

    Permalink

    A symbolic alias for zipPar.

  7. def <>[RIn1 <: RIn, E1, ROut1 >: ROut](that: ZServiceBuilder[RIn1, E1, ROut1])(implicit ev: CanFail[E], trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut1]

    Permalink

    A symbolic alias for orElse.

  8. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. final def >+>[E1 >: E, RIn2 >: ROut, ROut1 >: ROut, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2])(implicit ev: Union[ROut1, ROut2], tagged: zio.Tag[ROut2], trace: ZTraceElement): ZServiceBuilder[RIn, E1, ROut1 with ROut2]

    Permalink

    Feeds the output services of this service builder into the input of the specified service builder, resulting in a new service builder with the inputs of this service builder, and the outputs of both service builders.

  10. final def >>>[E1 >: E, ROut2](that: ZServiceBuilder[ROut, E1, ROut2])(implicit trace: ZTraceElement): ZServiceBuilder[RIn, E1, ROut2]

    Permalink

    Feeds the output services of this service builder into the input of the specified service builder, resulting in a new service builder with the inputs of this service builder, and the outputs of the specified service builder.

  11. final def and[E1 >: E, RIn2, ROut1 >: ROut, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2])(implicit ev: Union[ROut1, ROut2], tagged: zio.Tag[ROut2]): ZServiceBuilder[RIn with RIn2, E1, ROut1 with ROut2]

    Permalink

    A named alias for ++.

  12. final def andTo[E1 >: E, RIn2 >: ROut, ROut1 >: ROut, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2])(implicit ev: Union[ROut1, ROut2], tagged: zio.Tag[ROut2], trace: ZTraceElement): ZServiceBuilder[RIn, E1, ROut1 with ROut2]

    Permalink

    A named alias for >+>.

  13. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  14. final def build(implicit trace: ZTraceElement): ZManaged[RIn, E, ROut]

    Permalink

    Builds a service builder into a managed value.

  15. final def catchAll[RIn1 <: RIn, E1, ROut1 >: ROut](handler: ZServiceBuilder[(RIn1, E), E1, ROut1])(implicit trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut1]

    Permalink

    Recovers from all errors.

  16. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  19. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. final def flatMap[RIn1 <: RIn, E1 >: E, ROut2](f: (ROut) ⇒ ZServiceBuilder[RIn1, E1, ROut2])(implicit trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut2]

    Permalink

    Constructs a service builder dynamically based on the output of this service builder.

  21. final def flatten[RIn1 <: RIn, E1 >: E, ROut2](implicit ev: <:<[ROut, ZServiceBuilder[RIn1, E1, ROut2]], trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut2]

    Permalink

    This method can be used to "flatten" nested service builders.

  22. final def fold[E1, RIn1 <: RIn, ROut2](failure: ZServiceBuilder[(RIn1, Cause[E]), E1, ROut2], success: ZServiceBuilder[ROut, E1, ROut2])(implicit ev: CanFail[E]): ZServiceBuilder[RIn1, E1, ROut2]

    Permalink

    Feeds the error or output services of this service builder into the input of either the specified failure or success service builders, resulting in a new service builder with the inputs of this service builder, and the error or outputs of the specified service builder.

  23. final def fresh: ZServiceBuilder[RIn, E, ROut]

    Permalink

    Creates a fresh version of this service builder that will not be shared.

  24. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  25. final lazy val hashCode: Int

    Permalink

    Returns the hash code of this service builder.

    Returns the hash code of this service builder.

    Definition Classes
    ZServiceBuilder → AnyRef → Any
  26. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  27. final def launch(implicit trace: ZTraceElement): ZIO[RIn, E, Nothing]

    Permalink

    Builds this service builder and uses it until it is interrupted.

    Builds this service builder and uses it until it is interrupted. This is useful when your entire application is a service builder, such as an HTTP server.

  28. final def map[ROut1](f: (ROut) ⇒ ROut1)(implicit trace: ZTraceElement): ZServiceBuilder[RIn, E, ROut1]

    Permalink

    Returns a new service builder whose output is mapped by the specified function.

  29. final def mapError[E1](f: (E) ⇒ E1)(implicit ev: CanFail[E], trace: ZTraceElement): ZServiceBuilder[RIn, E1, ROut]

    Permalink

    Returns a service builder with its error channel mapped using the specified function.

  30. final def memoize(implicit trace: ZTraceElement): ZManaged[Any, Nothing, ZServiceBuilder[RIn, E, ROut]]

    Permalink

    Returns a managed effect that, if evaluated, will return the lazily computed result of this service builder.

  31. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  32. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  33. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  34. final def orDie(implicit ev1: IsSubtypeOfError[E, Throwable], ev2: CanFail[E], trace: ZTraceElement): ZServiceBuilder[RIn, Nothing, ROut]

    Permalink

    Translates effect failure into death of the fiber, making all failures unchecked and not a part of the type of the service builder.

  35. final def orElse[RIn1 <: RIn, E1, ROut1 >: ROut](that: ZServiceBuilder[RIn1, E1, ROut1])(implicit ev: CanFail[E], trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut1]

    Permalink

    Executes this service builder and returns its output, if it succeeds, but otherwise executes the specified service builder.

  36. final def retry[RIn1 <: RIn with Has[Clock]](schedule: Schedule[RIn1, E, Any])(implicit trace: ZTraceElement): ZServiceBuilder[RIn1, E, ROut]

    Permalink

    Retries constructing this service builder according to the specified schedule.

  37. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  38. final def tap[RIn1 <: RIn, E1 >: E](f: (ROut) ⇒ ZIO[RIn1, E1, Any])(implicit trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut]

    Permalink

    Performs the specified effect if this service builder succeeds.

  39. final def tapError[RIn1 <: RIn, E1 >: E](f: (E) ⇒ ZIO[RIn1, E1, Any])(implicit trace: ZTraceElement): ZServiceBuilder[RIn1, E1, ROut]

    Permalink

    Performs the specified effect if this service builder fails.

  40. final def to[E1 >: E, ROut2](that: ZServiceBuilder[ROut, E1, ROut2])(implicit trace: ZTraceElement): ZServiceBuilder[RIn, E1, ROut2]

    Permalink

    A named alias for >>>.

  41. final def toRuntime(runtimeConfig: RuntimeConfig)(implicit ev: <:<[Any, RIn], trace: ZTraceElement): Managed[E, Runtime[ROut]]

    Permalink

    Converts a service builder that requires no services into a managed runtime, which can be used to execute effects.

  42. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  43. final def update[A](f: (A) ⇒ A)(implicit arg0: zio.Tag[A], ev1: IsHas[ROut], ev2: <:<[ROut, Has[A]], trace: ZTraceElement): ZServiceBuilder[RIn, E, ROut]

    Permalink

    Updates one of the services output by this service builder.

  44. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  46. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. final def zipPar[E1 >: E, RIn2, ROut2](that: ZServiceBuilder[RIn2, E1, ROut2]): ZServiceBuilder[RIn with RIn2, E1, (ROut, ROut2)]

    Permalink

    Combines this service builder the specified service builder, producing a new service builder that has the inputs of both, and the outputs of both combined into a tuple.

  48. final def zipWithPar[E1 >: E, RIn2, ROut1 >: ROut, ROut2, ROut3](that: ZServiceBuilder[RIn2, E1, ROut2])(f: (ROut, ROut2) ⇒ ROut3): ZServiceBuilder[RIn with RIn2, E1, ROut3]

    Permalink

    Combines this service builder the specified service builder, producing a new service builder that has the inputs of both, and the outputs of both combined using the specified function.

Inherited from AnyRef

Inherited from Any

Ungrouped