Files
pcinv/template_funcs.go

98 lines
1.4 KiB
Go

package main
import (
"fmt"
)
func createDeviceLink(deviceType, name string, qr *int) CreateDeviceLink {
return CreateDeviceLink{
Type: deviceType,
Name: name,
Qr: qr,
}
}
type CreateDeviceLink struct {
Type string
Name string
Qr *int
}
func formatMemoryUnit(size int) string {
const (
KB = 1024
MB = KB * 1024
GB = MB * 1024
)
switch {
case size >= GB:
return "GB"
case size >= MB:
return "MB"
case size >= KB:
return "KB"
default:
return "B"
}
}
func formatMemorySize(size int) string {
const (
KB = 1024
MB = KB * 1024
GB = MB * 1024
)
switch formatMemoryUnit(size) {
case "GB":
return fmt.Sprintf("%.2f GB", float64(size)/GB)
case "MB":
return fmt.Sprintf("%.2f MB", float64(size)/MB)
case "KB":
return fmt.Sprintf("%.2f KB", float64(size)/KB)
case "B":
return fmt.Sprintf("%d B", size)
default:
panic("invalid memory size")
}
}
func formatMemoryPlainSize(size int) int {
const (
KB = 1024
MB = KB * 1024
GB = MB * 1024
)
switch formatMemoryUnit(size) {
case "GB":
return size / GB
case "MB":
return size / MB
case "KB":
return size / KB
case "B":
return size
default:
panic("invalid memory size")
}
}
func isRamType(size int, unit string) bool {
if size == 0 && unit == "MB" {
return true
}
actualUnit := formatMemoryUnit(size)
return unit == actualUnit
}
func formatType(t string) string {
switch t {
case "ram":
return "Random Access Memory"
default:
return t
}
}