Compare commits
2 Commits
15f4b051da
...
c944b05fa3
| Author | SHA1 | Date | |
|---|---|---|---|
| c944b05fa3 | |||
| 2e35d37157 |
@@ -14,7 +14,6 @@ go get git.vsu.ru/ai/cgpcli
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"git.vsu.ru/ai/cgpcli"
|
"git.vsu.ru/ai/cgpcli"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
26
encode.go
26
encode.go
@@ -106,6 +106,16 @@ func isCGPSafeString(s string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var cgpSizeUnits = []struct {
|
||||||
|
suffix string
|
||||||
|
value int64
|
||||||
|
}{
|
||||||
|
{"T", 1024 * 1024 * 1024 * 1024},
|
||||||
|
{"G", 1024 * 1024 * 1024},
|
||||||
|
{"M", 1024 * 1024},
|
||||||
|
{"K", 1024},
|
||||||
|
}
|
||||||
|
|
||||||
// formatCGPSize преобразует байты в формат CGP (1K, 5M, 10G) или "unlimited".
|
// formatCGPSize преобразует байты в формат CGP (1K, 5M, 10G) или "unlimited".
|
||||||
func formatCGPSize(v int64) string {
|
func formatCGPSize(v int64) string {
|
||||||
if v == -1 {
|
if v == -1 {
|
||||||
@@ -114,18 +124,9 @@ func formatCGPSize(v int64) string {
|
|||||||
if v == 0 {
|
if v == 0 {
|
||||||
return "0"
|
return "0"
|
||||||
}
|
}
|
||||||
units := []struct {
|
for _, u := range cgpSizeUnits {
|
||||||
suffix string
|
|
||||||
value int64
|
|
||||||
}{
|
|
||||||
{"T", 1024 * 1024 * 1024 * 1024},
|
|
||||||
{"G", 1024 * 1024 * 1024},
|
|
||||||
{"M", 1024 * 1024},
|
|
||||||
{"K", 1024},
|
|
||||||
}
|
|
||||||
for _, u := range units {
|
|
||||||
if v%u.value == 0 {
|
if v%u.value == 0 {
|
||||||
return fmt.Sprintf("%d%s", v/u.value, u.suffix)
|
return strconv.FormatInt(v/u.value, 10) + u.suffix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return strconv.FormatInt(v, 10)
|
return strconv.FormatInt(v, 10)
|
||||||
@@ -193,8 +194,7 @@ func marshal(w encodeWriter, v any, keyName string) (err error) {
|
|||||||
|
|
||||||
case cgpIPSBSA:
|
case cgpIPSBSA:
|
||||||
w.WriteByte('"')
|
w.WriteByte('"')
|
||||||
ips := []net.IP(val)
|
for i, ip := range val {
|
||||||
for i, ip := range ips {
|
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
w.WriteString(", ")
|
w.WriteString(", ")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user