seqio

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2023 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Overview

Package seqio is an experimental package providing Seq interoperability with standard Go IO interfaces like io.Reader and bufio.Scanner.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BufferOpt added in v0.9.9

type BufferOpt = opt.Opt[[]byte]

type BufferSeq added in v0.2.0

type BufferSeq = seq.Seq[[]byte]

func LinesOf added in v0.2.0

func LinesOf(r io.Reader) BufferSeq

LinesOf returns a stateful seq splitting an io.Reader into lines using a standard bufio.Scanner.

func ReaderOf

func ReaderOf(r io.Reader, buf []byte) BufferSeq

ReaderOf creates a stateful seq.Seq wrapping an io.Reader. A buffer to use may optionally be provided.

Errors can be detected be using seq.Error() on seqs and opts returned from the reader's methods.

func ScannerOf added in v0.2.0

func ScannerOf(r io.Reader, split bufio.SplitFunc, buf []byte, maxBuf int) BufferSeq

ScannerOf creates a stateful seq splits a io.Reader into delimited chunks. If you want to split a reader into lines you can use LinesOf.

type BufferSlice added in v0.4.0

type BufferSlice = seq.Slice[[]byte]

type Reader added in v0.2.0

type Reader struct {
	// contains filtered or unexported fields
}

func (Reader) ByteLen added in v0.2.0

func (r Reader) ByteLen() (int, bool)

ByteLen on a Reader is unknown, unless the underlying io.Reader is an *os.File or if it is a something with a Len() int method, like a bytes.Buffer.

func (Reader) First added in v0.2.0

func (r Reader) First() (opt.Opt[[]byte], BufferSeq)

func (Reader) ForEach added in v0.2.0

func (r Reader) ForEach(f seq.Func1[[]byte]) BufferOpt

func (Reader) ForEachIndex added in v0.2.0

func (r Reader) ForEachIndex(f seq.Func2[int, []byte]) BufferOpt

ForEachIndex on a Reader sequence passes the stream offset, not the iteration index to f.

func (Reader) Len added in v0.2.0

func (r Reader) Len() (int, bool)

Len on a Reader is unknown, unless the underlying io.Reader is an *os.File or something with a Len() int method, in which case it returns the number of buffers this Seq will produce when executed.

func (Reader) Limit added in v0.4.0

func (r Reader) Limit(n int) BufferSeq

func (Reader) Map added in v0.2.0

func (r Reader) Map(shaper seq.FuncMap[[]byte, []byte]) BufferSeq

func (Reader) Skip added in v0.2.0

func (r Reader) Skip(n int) BufferSeq

func (Reader) Take added in v0.2.0

func (r Reader) Take(n int) (BufferSlice, BufferSeq)

func (Reader) TakeWhile added in v0.2.0

func (r Reader) TakeWhile(pred seq.Predicate[[]byte]) (BufferSlice, BufferSeq)

func (Reader) ToSlice added in v0.3.0

func (r Reader) ToSlice() BufferSlice

func (Reader) Where added in v0.2.0

func (r Reader) Where(pred seq.Predicate[[]byte]) BufferSeq

func (Reader) While added in v0.2.0

func (r Reader) While(pred seq.Predicate[[]byte]) BufferSeq

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL