ScalaStreams

class ScalaStreams[DSL <: ScalaDSL, Lib <: CoreLib[DSL], SLib <: ScalaLib[DSL, Lib], Streams <: CoreStreams[DSL, Lib]](val dsl: DSL, val coreLib: Lib & CoreLib[DSL], val scalaLib: SLib & ScalaLib[DSL, Lib & CoreLib[DSL]], val coreStreams: Streams & CoreStreams[DSL, Lib & CoreLib[DSL]])
Companion
object
class Object
trait Matchable
class Any

Type members

Classlikes

object Demanding
object Pollable
object Polled
object Subscriber

Types

type Consumer[A] = Rec[[_] =>> ConsumerF[A, _$2]]
type ConsumerF[A, X] = Need |&| Need |+| Neg[A] |*| X
type Demanding[A] = LDemanding[Neg[A]]
type Pollable[A] = LPollable[Val[A]]
type PollableF[A, X] = LPollableF[Val[A], X]
type Polled[A] = LPolled[Val[A]]
type Producing[A] = Rec[[_] =>> ProducingF[A, _$1]]
type ProducingF[A, X] = Done |+| Done |&| Val[A] |*| X
type Subscriber[A] = LSubscriber[Neg[A]]
type SubscriberF[A, X] = LSubscriberF[Neg[A], X]

Value members

Methods

def lInvertConsumerF[A, x, y](lInvertSub: One -⚬ y |*| x): One -⚬ ConsumerF[A, y] |*| ProducingF[A, x]
def rInvertProducingF[A, x, y](rInvertSub: x |*| y -⚬ One): ProducingF[A, x] |*| ConsumerF[A, y] -⚬ One

If either the source or the subscriber is completed, complete the other one and be done. Otherwise, expose their offer and demand, respectively.

Fields

val coreLib: Lib & CoreLib[DSL]
val coreStreams: Streams & CoreStreams[DSL, Lib & CoreLib[DSL]]
val dsl: DSL
val scalaLib: SLib & ScalaLib[DSL, Lib & CoreLib[DSL]]

Implicits

Implicits