mutator

package
v0.1.1-alpha Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2018 License: Apache-2.0 Imports: 2 Imported by: 6

Documentation

Overview

Package mutator defines the operations to transform mutations into changes in the map as well as operations to write and read mutations to and from the database.

Index

Constants

This section is empty.

Variables

View Source
var (
	// MaxMutationSize represent the maximum allowed mutation size in bytes.
	MaxMutationSize = 16 * 1024
	// ErrReplay occurs when two mutations acting on the same entry & revision
	// occur.
	ErrReplay = errors.New("mutation replay")
	// ErrSize occurs when the mutation size is larger than the allowed upper
	// bound.
	ErrSize = errors.New("mutation: too large")
	// ErrPreviousHash occurs when the mutation the hash of the previous
	// entry provided in the mutation does not match the previous entry
	// itself.
	ErrPreviousHash = errors.New("mutation: previous entry hash does not match the hash provided in the mutation")
	// ErrInvalidSig occurs when either the current or previous update entry
	// signature verification fails.
	ErrInvalidSig = errors.New("mutation: invalid signature")
	// ErrUnauthorized occurs when the mutation has not been signed by a key in the
	// previous entry.
	ErrUnauthorized = errors.New("mutation: unauthorized")
)

Functions

This section is empty.

Types

type LogMessage

type LogMessage struct {
	ID        int64
	LocalID   int64
	Mutation  *pb.SignedEntry
	ExtraData *pb.Committed
}

LogMessage represents a change to a user, and associated data.

type MapLogItemFn

type MapLogItemFn func(logItem *LogMessage, emit func(index []byte, mutation *pb.EntryUpdate)) error

MapLogItemFn takes a log item and emits 0 or more KV<index, mutations> pairs.

type ReduceMutationFn

type ReduceMutationFn func(existingMapLeafValue, mutation *pb.SignedEntry) (*pb.SignedEntry, error)

ReduceMutationFn takes the existing mapleaf and a new mutation and returns the new value for that map leaf. ReduceMutationFn verifies that this is a valid mutation for this item. ReduceMutationFn must be idempotent.

Directories

Path Synopsis
Package entry implements a simple replacement strategy as a mapper.
Package entry implements a simple replacement strategy as a mapper.

Jump to

Keyboard shortcuts

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