github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/syndtr/goleveldb/leveldb/util.go (about)

     1  // Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
     2  // All rights reserved.
     3  //
     4  // Use of this source code is governed by a BSD-style license that can be
     5  // found in the LICENSE file.
     6  
     7  package leveldb
     8  
     9  import (
    10  	"fmt"
    11  	"sort"
    12  
    13  	"github.com/insionng/yougam/libraries/syndtr/goleveldb/leveldb/storage"
    14  )
    15  
    16  func shorten(str string) string {
    17  	if len(str) <= 8 {
    18  		return str
    19  	}
    20  	return str[:3] + ".." + str[len(str)-3:]
    21  }
    22  
    23  var bunits = [...]string{"", "Ki", "Mi", "Gi"}
    24  
    25  func shortenb(bytes int) string {
    26  	i := 0
    27  	for ; bytes > 1024 && i < 4; i++ {
    28  		bytes /= 1024
    29  	}
    30  	return fmt.Sprintf("%d%sB", bytes, bunits[i])
    31  }
    32  
    33  func sshortenb(bytes int) string {
    34  	if bytes == 0 {
    35  		return "~"
    36  	}
    37  	sign := "+"
    38  	if bytes < 0 {
    39  		sign = "-"
    40  		bytes *= -1
    41  	}
    42  	i := 0
    43  	for ; bytes > 1024 && i < 4; i++ {
    44  		bytes /= 1024
    45  	}
    46  	return fmt.Sprintf("%s%d%sB", sign, bytes, bunits[i])
    47  }
    48  
    49  func sint(x int) string {
    50  	if x == 0 {
    51  		return "~"
    52  	}
    53  	sign := "+"
    54  	if x < 0 {
    55  		sign = "-"
    56  		x *= -1
    57  	}
    58  	return fmt.Sprintf("%s%d", sign, x)
    59  }
    60  
    61  func minInt(a, b int) int {
    62  	if a < b {
    63  		return a
    64  	}
    65  	return b
    66  }
    67  
    68  func maxInt(a, b int) int {
    69  	if a > b {
    70  		return a
    71  	}
    72  	return b
    73  }
    74  
    75  type fdSorter []storage.FileDesc
    76  
    77  func (p fdSorter) Len() int {
    78  	return len(p)
    79  }
    80  
    81  func (p fdSorter) Less(i, j int) bool {
    82  	return p[i].Num < p[j].Num
    83  }
    84  
    85  func (p fdSorter) Swap(i, j int) {
    86  	p[i], p[j] = p[j], p[i]
    87  }
    88  
    89  func sortFds(fds []storage.FileDesc) {
    90  	sort.Sort(fdSorter(fds))
    91  }