// Copyright (c) 2014, 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.packageutil// Range is a key range.typeRangestruct{// Start of the key range, include in the range.Start[]byte// Limit of the key range, not include in the range.Limit[]byte}// BytesPrefix returns key range that satisfy the given prefix.// This only applicable for the standard 'bytes comparer'.funcBytesPrefix(prefix[]byte)*Range{varlimit[]bytefori:=len(prefix)-1;i>=0;i--{c:=prefix[i]ifc<0xff{limit=make([]byte,i+1)copy(limit,prefix)limit[i]=c+1break}}return&Range{prefix,limit}}