parallel

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package parallel implements helpers for fast processing of line oriented inputs.

Index

Constants

This section is empty.

Variables

New is a preferred way to create a new parallel processor.

Functions

This section is empty.

Types

type BytesBatch

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

BytesBatch is a slice of byte slices.

func NewBytesBatch

func NewBytesBatch() *BytesBatch

NewBytesBatch creates a new BytesBatch with a given capacity.

func NewBytesBatchCapacity

func NewBytesBatchCapacity(cap int) *BytesBatch

NewBytesBatchCapacity creates a new BytesBatch with a given capacity.

func (*BytesBatch) Add

func (bb *BytesBatch) Add(b []byte)

Add adds an element to the batch.

func (*BytesBatch) Reset

func (bb *BytesBatch) Reset()

Reset empties this batch.

func (*BytesBatch) Size

func (bb *BytesBatch) Size() int

Size returns the number of elements in the batch.

func (*BytesBatch) Slice

func (bb *BytesBatch) Slice() [][]byte

Slice returns a slice of byte slices.

type Processor

type Processor struct {
	BatchSize       int
	RecordSeparator byte
	NumWorkers      int
	SkipEmptyLines  bool
	Verbose         bool
	R               io.Reader
	W               io.Writer
	F               TransformerFunc
}

Processor can process lines in parallel.

func NewProcessor

func NewProcessor(r io.Reader, w io.Writer, f TransformerFunc) *Processor

NewProcessor creates a new line processor.

func (*Processor) Run

func (p *Processor) Run() error

Run starts the workers, crunching through the input.

func (*Processor) RunWorkers

func (p *Processor) RunWorkers(numWorkers int) error

RunWorkers allows to quickly set the number of workers.

type SimpleTransformerFunc

type SimpleTransformerFunc func([]byte) []byte

SimpleTransformerFunc converts bytes to bytes.

type TransformerFunc

type TransformerFunc func([]byte) ([]byte, error)

TransformerFunc takes a slice of bytes and returns a slice of bytes and a an error. A common denominator of functions that transform data.

func ToTransformerFunc

func ToTransformerFunc(f SimpleTransformerFunc) TransformerFunc

ToTransformerFunc takes a simple transformer and wraps it so it can be used in places where a TransformerFunc is expected.

Directories

Path Synopsis
Package scan accepts a bufio.SplitFunc and generalizes batches to non-line oriented input, e.g.
Package scan accepts a bufio.SplitFunc and generalizes batches to non-line oriented input, e.g.

Jump to

Keyboard shortcuts

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