Matt S Trout > Data-CapabilityBased-0.001000 > Data::Stream

Download:
Data-CapabilityBased-0.001000.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

Data::Stream - capability based stream model

CAPABILITIES ^

  Common: (Next Reset Peek First Exhausted)

  Next:
    $stream->next

  Reset:
    $stream->reset

  Peek: (Next)
    $stream->peek # defaulted

  First: (Reset, Next)
    $stream->first # defaulted

  Exhausted:
    $stream->exhausted

  Exhausted::Peek: (Exhausted)
    $sream->exhausted # defaulted

  Ready: (Next)
    $stream->ready
    $stream->next_if_ready # defaulted

  MultiNext: (Next)
    $stream->next(Int $how_many); # defaulted

DISCUSSION AREAS ^

Can we consider certain things universal? Should peek always be permitted even though it can potentially retain a reference to a large/contended resource?

What are sensible capabilities for e.g. a socket stream?

Seeking, skipping ...

Composition of potentially inefficient defaults?

MultiNext may interfere with simple wrappers for next - can we deal with that somehow? (multi+around?)

syntax highlighting: