trait DataSource[-R, -A] extends AnyRef
A DataSource[R, A]
is capable of executing requests of type A
that
require an environment R
.
Data sources must implement the method run
which takes a collection of
requests and returns an effect with a CompletedRequestMap
containing a
mapping from requests to results. Because run
is parameterized on a
collection of requests rather than a single request, data sources have the
ability to introspect on all the requests being executed in parallel and
optimize the query.
Data sources will typically be parameterized on a subtype of Request[A]
,
though that is not strictly necessarily as long as the data source can map
the request type to a Request[A]
. Data sources can then pattern match on
the collection of requests to determine the information requested, execute
the query, and place the results into the CompletedRequestsMap
using
CompletedRequestMap.empty and CompletedRequestMap.insert.
- Self Type
- DataSource[R, A]
- Alphabetic
- By Inheritance
- DataSource
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract val identifier: String
The data source's identifier.
- abstract def run(requests: Iterable[A]): ZIO[R, Nothing, CompletedRequestMap]
Execute a collection of requests.
Execute a collection of requests. Data sources are guaranteed that the collection will contain at least one request and that all requests will be unique when they are called by
ZQuery
.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def contramap[B](f: Described[(B) => A]): DataSource[R, B]
Returns a new data source that executes requests of type
B
using the specified function to transformB
requests into requests that this data source can execute. - final def contramapM[R1 <: R, B](f: Described[(B) => ZIO[R1, Nothing, A]]): DataSource[R1, B]
Returns a new data source that executes requests of type
B
using the specified effectual function to transformB
requests into requests that this data source can execute. - final def eitherWith[R1 <: R, B, C](that: DataSource[R1, B])(f: Described[(C) => Either[A, B]]): DataSource[R1, C]
Returns a new data source that executes requests of type
C
using the specified function to transformC
requests into requests that either this data source or that data source can execute. - final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def equals(that: Any): Boolean
- Definition Classes
- DataSource → AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def hashCode(): Int
- Definition Classes
- DataSource → AnyRef → Any
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def provide(r: Described[R])(implicit ev: NeedsEnv[R]): DataSource[Any, A]
Provides this data source with its required environment.
- final def provideSome[R0](f: Described[(R0) => R])(implicit ev: NeedsEnv[R]): DataSource[R0, A]
Provides this data source with part of its required environment.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def toString(): String
- Definition Classes
- DataSource → AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()