Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
1.5 KiB
98 lines
1.5 KiB
// 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 leveldb |
|
|
|
import ( |
|
"fmt" |
|
"sort" |
|
|
|
"github.com/syndtr/goleveldb/leveldb/storage" |
|
) |
|
|
|
func shorten(str string) string { |
|
if len(str) <= 8 { |
|
return str |
|
} |
|
return str[:3] + ".." + str[len(str)-3:] |
|
} |
|
|
|
var bunits = [...]string{"", "Ki", "Mi", "Gi", "Ti"} |
|
|
|
func shortenb(bytes int) string { |
|
i := 0 |
|
for ; bytes > 1024 && i < 4; i++ { |
|
bytes /= 1024 |
|
} |
|
return fmt.Sprintf("%d%sB", bytes, bunits[i]) |
|
} |
|
|
|
func sshortenb(bytes int) string { |
|
if bytes == 0 { |
|
return "~" |
|
} |
|
sign := "+" |
|
if bytes < 0 { |
|
sign = "-" |
|
bytes *= -1 |
|
} |
|
i := 0 |
|
for ; bytes > 1024 && i < 4; i++ { |
|
bytes /= 1024 |
|
} |
|
return fmt.Sprintf("%s%d%sB", sign, bytes, bunits[i]) |
|
} |
|
|
|
func sint(x int) string { |
|
if x == 0 { |
|
return "~" |
|
} |
|
sign := "+" |
|
if x < 0 { |
|
sign = "-" |
|
x *= -1 |
|
} |
|
return fmt.Sprintf("%s%d", sign, x) |
|
} |
|
|
|
func minInt(a, b int) int { |
|
if a < b { |
|
return a |
|
} |
|
return b |
|
} |
|
|
|
func maxInt(a, b int) int { |
|
if a > b { |
|
return a |
|
} |
|
return b |
|
} |
|
|
|
type fdSorter []storage.FileDesc |
|
|
|
func (p fdSorter) Len() int { |
|
return len(p) |
|
} |
|
|
|
func (p fdSorter) Less(i, j int) bool { |
|
return p[i].Num < p[j].Num |
|
} |
|
|
|
func (p fdSorter) Swap(i, j int) { |
|
p[i], p[j] = p[j], p[i] |
|
} |
|
|
|
func sortFds(fds []storage.FileDesc) { |
|
sort.Sort(fdSorter(fds)) |
|
} |
|
|
|
func ensureBuffer(b []byte, n int) []byte { |
|
if cap(b) < n { |
|
return make([]byte, n) |
|
} |
|
return b[:n] |
|
}
|
|
|