sort

package
v0.0.0-...-f305919 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ByKey

func ByKey(values []byte) func(a, b interface{}) bool

func BytesCompare10

func BytesCompare10(a, b []byte) bool

func BytesCompare10Equ

func BytesCompare10Equ(a, b []byte) bool

func BytesCompare10U16

func BytesCompare10U16(a, b []byte) bool

func Cmp10

func Cmp10(a []byte, b []byte) bool

func CreateSortRuns

func CreateSortRuns(file string, maxMemory int) ([]string, error)

func SortInMemory

func SortInMemory(buffer []byte)

func SortSingleBuffer

func SortSingleBuffer(buffer []byte, outputPath string) error

func SortSingleFile

func SortSingleFile(inputPath, outputPath string) error

func SortSingleFileSwapped

func SortSingleFileSwapped(path, output string) error

func SortSingleFileUniform

func SortSingleFileUniform(path, output string, rangeStart []byte, rangeEnd []byte) error

Types

type BufWriterCollecter

type BufWriterCollecter struct {
	Writer *bufio.Writer
}

func (*BufWriterCollecter) Collect

func (c *BufWriterCollecter) Collect(value []byte) error

func (*BufWriterCollecter) FlushAndClose

func (c *BufWriterCollecter) FlushAndClose() error

type ChunkReader

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

func NewChunkReader

func NewChunkReader(stream chan []byte) *ChunkReader

func (*ChunkReader) Read

func (r *ChunkReader) Read(b []byte) (int, error)

type Collecter

type Collecter interface {
	Collect(value []byte) error
	FlushAndClose() error
}

type Marker

type Marker struct {
	Value []byte
	Index int
}

func MergeRuns

func MergeRuns(items MergeHeap, collecter Collecter) ([]Marker, error)

func SortChunkAndWrite

func SortChunkAndWrite(buffer []byte, path string, markerInterval int, rwBufSize int) ([]Marker, error)

type MergeHeap

type MergeHeap []*MergeHeapItem

func (MergeHeap) Len

func (h MergeHeap) Len() int

func (MergeHeap) Less

func (h MergeHeap) Less(i, j int) bool

func (*MergeHeap) Pop

func (h *MergeHeap) Pop() interface{}

func (*MergeHeap) Push

func (h *MergeHeap) Push(x interface{})

func (MergeHeap) Swap

func (h MergeHeap) Swap(i, j int)

type MergeHeapItem

type MergeHeapItem struct {
	Reader io.Reader
	Buffer []byte
	Offset int
}

func (*MergeHeapItem) Value

func (m *MergeHeapItem) Value() []byte

type PipeWriterCollecter

type PipeWriterCollecter struct {
	PipeWr *io.PipeWriter
}

func (*PipeWriterCollecter) Collect

func (c *PipeWriterCollecter) Collect(value []byte) error

func (*PipeWriterCollecter) FlushAndClose

func (c *PipeWriterCollecter) FlushAndClose() error

type RunWriter

type RunWriter struct {
	Memory int
	Base   string
	Runs   chan string
	// contains filtered or unexported fields
}

func NewRunWriter

func NewRunWriter(memory int, base string) (*RunWriter, error)

func (*RunWriter) Close

func (w *RunWriter) Close() error

func (*RunWriter) Write

func (w *RunWriter) Write(b []byte) (int, error)

Jump to

Keyboard shortcuts

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