Files
waf-platform/EdgeCommon/pkg/userconfigs/user_traffic_package_plus.go

64 lines
1.5 KiB
Go

// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
//go:build plus
package userconfigs
type TrafficPackagePeriod = string
const (
TrafficPackagePeriodMonth TrafficPackagePeriod = "month"
TrafficPackagePeriodYear TrafficPackagePeriod = "year"
)
func IsValidTrafficPackagePeriod(period string) bool {
return period == TrafficPackagePeriodMonth || period == TrafficPackagePeriodYear
}
func TrafficPackagePeriodToMonths(count int32, unit TrafficPackagePeriod) int32 {
if count < 0 {
return count
}
switch unit {
case TrafficPackagePeriodMonth:
return count
case TrafficPackagePeriodYear:
return count * 12
}
return 0
}
func TrafficPackagePeriodUnitName(unit TrafficPackagePeriod) string {
switch unit {
case TrafficPackagePeriodMonth:
return "个月"
case TrafficPackagePeriodYear:
return "年"
}
return ""
}
type PackageSizeUnit = string
const (
TrafficPackageSizeUnitGB PackageSizeUnit = "gb"
TrafficPackageSizeUnitTB PackageSizeUnit = "tb"
TrafficPackageSizeUnitPB PackageSizeUnit = "pb"
)
func IsValidTrafficPackageSizeUnit(unit string) bool {
return unit == TrafficPackageSizeUnitGB || unit == TrafficPackageSizeUnitTB || unit == TrafficPackageSizeUnitPB
}
func TrafficPackageSizeBytes(count int32, unit PackageSizeUnit) int64 {
switch unit {
case TrafficPackageSizeUnitGB:
return int64(count) * (1 << 30)
case TrafficPackageSizeUnitTB:
return int64(count) * (1 << 40)
case TrafficPackageSizeUnitPB:
return int64(count) * (1 << 50)
}
return 0
}