CharLikeChunks

@implicitNotFound("Cannot prove that stream of type ${In} has chunks that can be iterated over to get characters")
trait CharLikeChunks[F[_], In]

A typeclass witnessing that a stream of type In has chunks that can be iterated over to get characters.

Companion:
object
class Object
trait Matchable
class Any

Type members

Types

type Context

The context used to pull chunks and iterate over characters. Implementations might decide to have immutable or mutable contexts depending on performance constraints that are desired.

The context used to pull chunks and iterate over characters. Implementations might decide to have immutable or mutable contexts depending on performance constraints that are desired.

Value members

Abstract methods

Advances one character in the context. This method is called for stepping through characters, so it is preferrable to have it efficient. Implemetations can be based on mutable Context, as a new one is created locally by the parsers.

Advances one character in the context. This method is called for stepping through characters, so it is preferrable to have it efficient. Implemetations can be based on mutable Context, as a new one is created locally by the parsers.

This should not perform any effect or pull.

Implementations can assume that needsPull will be called after this step function to check boundaries within the current chunk in the context.

def create(s: Stream[F, In]): Context

Creates a context out of a stream.

Creates a context out of a stream.

def current(ctx: Context): Char

Returns the current character in the context.

Returns the current character in the context.

Implementations can assume this will never fail, as parsers will check for needsPull and pullNext before calling this function.

This should not perform any effect or pull and must be pure.

def needsPull(ctx: Context): Boolean

Decides whether a new chunk must be pulled from the context.

Decides whether a new chunk must be pulled from the context.

def pullNext(ctx: Context): Pull[F, INothing, Option[Context]]

Pulls the next chunk from the context. Returns None if stream is exhausted.

Pulls the next chunk from the context. Returns None if stream is exhausted.