ScalettoStreams

libretto.scaletto.ScalettoStreams
See theScalettoStreams companion object
class ScalettoStreams[DSL <: Scaletto, Lib <: CoreLib[DSL], SLib <: ScalettoLib[DSL, Lib], Streams <: CoreStreams[DSL, Lib]](val dsl: DSL, val coreLib: Lib & CoreLib[DSL], val scalettoLib: SLib & ScalettoLib[DSL, Lib & CoreLib[DSL]], val coreStreams: Streams & CoreStreams[DSL, Lib & CoreLib[DSL]])

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

object Demanding

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
opaque object Pollable

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object Polled

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Polled.type
object Subscriber

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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.

Attributes

Concrete fields

val coreLib: Lib & CoreLib[DSL]
val coreStreams: Streams & CoreStreams[DSL, Lib & CoreLib[DSL]]
val dsl: DSL
val scalettoLib: SLib & ScalettoLib[DSL, Lib & CoreLib[DSL]]

Implicits

Implicits