chunking

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidConcurrency = errors.New("invalid chunk concurrency")

Functions

func ProcessPDF

func ProcessPDF(
	ctx context.Context,
	pdf []byte,
	pagesPerChunk int,
	concurrency int,
	splitter Splitter,
	handler ocrs.Handler[[]byte, ocrs.OCRResult],
	merge MergeFunc,
) (ocrs.OCRResult, error)

Types

type Chunk

type Chunk struct {
	Index     int
	StartPage int
	EndPage   int
	Data      []byte
}

type CutAwareConfig

type CutAwareConfig struct {
	PagesPerChunk    int
	ChunkConcurrency int
	Splitter         Splitter
	Inner            ocrs.Handler[[]byte, ocrs.OCRResult]
	Merge            MergeFunc
}

type CutAwareHandler

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

func NewCutAwareHandler

func NewCutAwareHandler(cfg CutAwareConfig) *CutAwareHandler

func (*CutAwareHandler) Handle

func (h *CutAwareHandler) Handle(ctx context.Context, data []byte) (ocrs.OCRResult, error)

type MergeFunc

type MergeFunc func(results []ocrs.OCRResult) (ocrs.OCRResult, error)

type PDFCPUSplitter

type PDFCPUSplitter struct{}

func (PDFCPUSplitter) Split

func (s PDFCPUSplitter) Split(ctx context.Context, pdf []byte, pagesPerChunk int) ([]Chunk, error)

type Splitter

type Splitter interface {
	Split(ctx context.Context, pdf []byte, pagesPerChunk int) ([]Chunk, error)
}

Jump to

Keyboard shortcuts

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