mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 01:31:17 +00:00
Upgraded from 99c19923, branch release-3.0. This required fetching or upgrading the following: * k8s.io/api to kubernetes-1.9.1 * k8s.io/apimachinery to kubernetes-1.9.1 * github.com/juju/ratelimit to 1.0.1 * github.com/spf13/pflag to 4c012f6d Also, update Scope's imports/function calls to be compatible with the new client.
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
|
|
// All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package comparer
|
|
|
|
import "bytes"
|
|
|
|
type bytesComparer struct{}
|
|
|
|
func (bytesComparer) Compare(a, b []byte) int {
|
|
return bytes.Compare(a, b)
|
|
}
|
|
|
|
func (bytesComparer) Name() string {
|
|
return "leveldb.BytewiseComparator"
|
|
}
|
|
|
|
func (bytesComparer) Separator(dst, a, b []byte) []byte {
|
|
i, n := 0, len(a)
|
|
if n > len(b) {
|
|
n = len(b)
|
|
}
|
|
for ; i < n && a[i] == b[i]; i++ {
|
|
}
|
|
if i >= n {
|
|
// Do not shorten if one string is a prefix of the other
|
|
} else if c := a[i]; c < 0xff && c+1 < b[i] {
|
|
dst = append(dst, a[:i+1]...)
|
|
dst[i]++
|
|
return dst
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (bytesComparer) Successor(dst, b []byte) []byte {
|
|
for i, c := range b {
|
|
if c != 0xff {
|
|
dst = append(dst, b[:i+1]...)
|
|
dst[i]++
|
|
return dst
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DefaultComparer are default implementation of the Comparer interface.
|
|
// It uses the natural ordering, consistent with bytes.Compare.
|
|
var DefaultComparer = bytesComparer{}
|