...

Package comparer

import "github.com/syndtr/goleveldb/leveldb/comparer"
Overview
Index

Overview ▾

Package comparer provides interface and implementation for ordering sets of data.

Variables

var DefaultComparer = bytesComparer{}

DefaultComparer are default implementation of the Comparer interface. It uses the natural ordering, consistent with bytes.Compare.

type BasicComparer

type BasicComparer interface {
    // Compare returns -1, 0, or +1 depending on whether a is 'less than',
    // 'equal to' or 'greater than' b. The two arguments can only be 'equal'
    // if their contents are exactly equal. Furthermore, the empty slice
    // must be 'less than' any non-empty slice.
    Compare(a, b []byte) int
}

BasicComparer is the interface that wraps the basic Compare method.

type Comparer

type Comparer interface {
    BasicComparer

    // Name returns name of the comparer.
    //
    // The Level-DB on-disk format stores the comparer name, and opening a
    // database with a different comparer from the one it was created with
    // will result in an error.
    //
    // An implementation to a new name whenever the comparer implementation
    // changes in a way that will cause the relative ordering of any two keys
    // to change.
    //
    // Names starting with "leveldb." are reserved and should not be used
    // by any users of this package.
    Name() string

    // Separator appends a sequence of bytes x to dst such that a <= x && x < b,
    // where 'less than' is consistent with Compare. An implementation should
    // return nil if x equal to a.
    //
    // Either contents of a or b should not by any means modified. Doing so
    // may cause corruption on the internal state.
    Separator(dst, a, b []byte) []byte

    // Successor appends a sequence of bytes x to dst such that x >= b, where
    // 'less than' is consistent with Compare. An implementation should return
    // nil if x equal to b.
    //
    // Contents of b should not by any means modified. Doing so may cause
    // corruption on the internal state.
    Successor(dst, b []byte) []byte
}

Comparer defines a total ordering over the space of []byte keys: a 'less than' relationship.