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. Data
sources must provide results for all requests received. Failure to do so
will cause a query to die with a QueryFailure when run.
- Self Type
- DataSource[R, A]
- Alphabetic
- By Inheritance
- DataSource
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @native()
-
final
def
contramap[B](f: Described[(B) ⇒ A]): DataSource[R, B]
Returns a new data source that executes requests of type
Busing the specified function to transformBrequests 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
Busing the specified effectual function to transformBrequests 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
Cusing the specified function to transformCrequests 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[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()