cps.stream

package cps.stream

Type members

Classlikes

trait AsyncIterator[F[_], T]

Minimal mutable async stream.

Minimal mutable async stream.

Companion:
object
Source:
AsyncIterator.scala
class AsyncIteratorEmitAbsorber[F[_], C <: CpsMonadContext[F], T](using ec: ExecutionContext, auxAsyncMonad: Aux[F, C]) extends CpsAsyncEmitAbsorber4[AsyncIterator[F, T], F, C, T]
sealed trait AsyncList[F[_], +T]

Mininal async stream.

Mininal async stream.

Companion:
object
Source:
AsyncList.scala
object AsyncList
Companion:
class
Source:
AsyncList.scala
class AsyncListEmitAbsorber[F[_], C <: CpsMonadContext[F], T](using ec: ExecutionContext, auxMonad: Aux[F, C]) extends BaseUnfoldCpsAsyncEmitAbsorber[AsyncList[F, T], F, C, T]
class AsyncListIterator[F[_], T](l: AsyncList[F, T])(implicit evidence$1: CpsConcurrentMonad[F]) extends AsyncIterator[F, T]
class AsyncStreamHelper[R, F[_], C <: CpsMonadContext[F], A](a: Aux[R, F, C, A])
trait BaseUnfoldCpsAsyncEmitAbsorber[R, F[_], C <: CpsMonadContext[F], T](using ec: ExecutionContext, auxAsyncMonad: Aux[F, C]) extends CpsAsyncEmitAbsorber4[R, F, C, T]

This typeclass should be implemented for streams, which can be a target of asyncStream. i.e. if we want use generator of form

This typeclass should be implemented for streams, which can be a target of asyncStream. i.e. if we want use generator of form

asyncStream[R] { out =>
   ...
   out.emit(value)
}

Then we should have an implementation of given CpsAsyncEmitAbsorber[R] in the current scope.

Companion:
object
Source:
CpsAsyncEmitAbsorber.scala
trait CpsAsyncEmitAbsorber4[R, F[_], C <: CpsMonadContext[F], T](using val auxAsyncMonad: Aux[F, C]) extends CpsAsyncEmitAbsorber[R]
trait CpsAsyncEmitter[F[_], E]

Emitter which should be a parameter of asyncStream expression.

Emitter which should be a parameter of asyncStream expression.

 asyncStream[AsyncList[F,Int]] { out =>
    for(i <- 1 to 10)
       out.emit(i)
 }

Here out have a CpsAsyncEmitter[AsyncList[F,Int],F,E] type.

See also:

[cps. asyncStream]

Source:
CpsAsyncEmitter.scala