mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-26 20:27:03 +01:00
b6a95a8cb3
* Dropped unused codekit config * Integrated dynamic and static bindata for public * Ignore public bindata * Add a general generate make task * Integrated flexible public assets into web command * Updated vendoring, added all missiong govendor deps * Made the linter happy with the bindata and dynamic code * Moved public bindata definition to modules directory * Ignoring the new bindata path now * Updated to the new public modules import path * Updated public bindata command and drop the new prefix
32 lines
766 B
Go
32 lines
766 B
Go
// 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.
|
|
|
|
package util
|
|
|
|
// Range is a key range.
|
|
type Range struct {
|
|
// 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'.
|
|
func BytesPrefix(prefix []byte) *Range {
|
|
var limit []byte
|
|
for i := len(prefix) - 1; i >= 0; i-- {
|
|
c := prefix[i]
|
|
if c < 0xff {
|
|
limit = make([]byte, i+1)
|
|
copy(limit, prefix)
|
|
limit[i] = c + 1
|
|
break
|
|
}
|
|
}
|
|
return &Range{prefix, limit}
|
|
}
|