mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 00:15:43 +03:00
199 lines
3.5 KiB
Go
199 lines
3.5 KiB
Go
package structs.
|
|
|
|
var (
|
|
UnitIndex = make(map[string]*Unit, len(binarySIBytes)+len(decimalSIBytes)+len(binarySIByteRates)+len(decimalSIByteRates)+len(watts)+len(hertz))
|
|
|
|
binarySIBytes = []*Unit{
|
|
&Unit{
|
|
Name: "KiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 10,
|
|
},
|
|
&Unit{
|
|
Name: "MiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 20,
|
|
},
|
|
&Unit{
|
|
Name: "GiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 30,
|
|
},
|
|
&Unit{
|
|
Name: "TiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 40,
|
|
},
|
|
&Unit{
|
|
Name: "PiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 50,
|
|
},
|
|
&Unit{
|
|
Name: "EiB",
|
|
Base: UnitByte,
|
|
Multiplier: 1 << 60,
|
|
},
|
|
}
|
|
|
|
decimalSIBytes = []*Unit{
|
|
&Unit{
|
|
Name: "kB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 1),
|
|
},
|
|
&Unit{
|
|
Name: "KB", // Alternative name for kB
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 1),
|
|
},
|
|
&Unit{
|
|
Name: "MB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 2),
|
|
},
|
|
&Unit{
|
|
Name: "GB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 3),
|
|
},
|
|
&Unit{
|
|
Name: "TB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 4),
|
|
},
|
|
&Unit{
|
|
Name: "PB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 5),
|
|
},
|
|
&Unit{
|
|
Name: "EB",
|
|
Base: UnitByte,
|
|
Multiplier: Pow(1000, 6),
|
|
},
|
|
}
|
|
|
|
binarySIByteRates = []*Unit{
|
|
&Unit{
|
|
Name: "KiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 10,
|
|
},
|
|
&Unit{
|
|
Name: "MiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 20,
|
|
},
|
|
&Unit{
|
|
Name: "GiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 30,
|
|
},
|
|
&Unit{
|
|
Name: "TiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 40,
|
|
},
|
|
&Unit{
|
|
Name: "PiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 50,
|
|
},
|
|
&Unit{
|
|
Name: "EiB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: 1 << 60,
|
|
},
|
|
}
|
|
|
|
decimalSIByteRates = []*Unit{
|
|
&Unit{
|
|
Name: "kB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 1),
|
|
},
|
|
&Unit{
|
|
Name: "KB/s", // Alternative name for kB/s
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 1),
|
|
},
|
|
&Unit{
|
|
Name: "MB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 2),
|
|
},
|
|
&Unit{
|
|
Name: "GB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 3),
|
|
},
|
|
&Unit{
|
|
Name: "TB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 4),
|
|
},
|
|
&Unit{
|
|
Name: "PB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 5),
|
|
},
|
|
&Unit{
|
|
Name: "EB/s",
|
|
Base: UnitByteRate,
|
|
Multiplier: Pow(1000, 6),
|
|
},
|
|
}
|
|
|
|
hertz = []*Unit{
|
|
&Unit{
|
|
Name: "MHz",
|
|
Base: UnitHertz,
|
|
Multiplier: Pow(1000, 1),
|
|
},
|
|
&Unit{
|
|
Name: "GHz",
|
|
Base: UnitHertz,
|
|
Multiplier: Pow(1000, 3),
|
|
},
|
|
}
|
|
|
|
watts = []*Unit{
|
|
&Unit{
|
|
Name: "mW",
|
|
Base: UnitWatt,
|
|
Multiplier: Pow(10, 3),
|
|
InverseMultiplier: true,
|
|
},
|
|
&Unit{
|
|
Name: "W",
|
|
Base: UnitWatt,
|
|
Multiplier: 1,
|
|
},
|
|
&Unit{
|
|
Name: "kW",
|
|
Base: UnitWatt,
|
|
Multiplier: Pow(10, 3),
|
|
},
|
|
&Unit{
|
|
Name: "MW",
|
|
Base: UnitWatt,
|
|
Multiplier: Pow(10, 6),
|
|
},
|
|
&Unit{
|
|
Name: "GW",
|
|
Base: UnitWatt,
|
|
Multiplier: Pow(10, 9),
|
|
},
|
|
}
|
|
)
|
|
|
|
func init() {
|
|
// Build the index
|
|
for _, units := range [][]*Unit{binarySIBytes, decimalSIBytes, binarySIByteRates, decimalSIByteRates, watts, hertz} {
|
|
for _, unit := range units {
|
|
UnitIndex[unit.Name] = unit
|
|
}
|
|
}
|
|
}
|