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

Concrete 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.

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

Concrete 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