wrapper/uint.go

129 lines
2.3 KiB
Go
Raw Normal View History

2023-05-05 14:32:17 +08:00
// Package wrapper ...
//
// Description : wrapper ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-05-05 14:20
package wrapper
import (
"fmt"
"math"
)
// Uint ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:20 2023/5/5
type Uint uint64
// ToUint8 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:21 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToUint8() Uint8Result {
res := Uint8Result{
Value: 0,
Err: nil,
}
2023-05-05 14:32:17 +08:00
if ui > math.MaxUint8 || ui < 0 {
2023-05-08 17:07:33 +08:00
res.Err = fmt.Errorf("uint8 should between 0 and %v", uint8(math.MaxUint8))
return res
2023-05-05 14:32:17 +08:00
}
2023-05-08 17:07:33 +08:00
res.Value = uint8(ui)
return res
2023-05-05 14:32:17 +08:00
}
// ToUint16 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:25 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToUint16() Uint16Result {
res := Uint16Result{
Value: 0,
Err: nil,
}
2023-05-05 14:32:17 +08:00
if ui > math.MaxUint16 || ui < 0 {
2023-05-08 17:07:33 +08:00
res.Err = fmt.Errorf("uint16 should between 0 and %v", uint16(math.MaxUint16))
return res
2023-05-05 14:32:17 +08:00
}
2023-05-08 17:07:33 +08:00
res.Value = uint16(ui)
return res
2023-05-05 14:32:17 +08:00
}
// ToUint32 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:25 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToUint32() Uint32Result {
res := Uint32Result{
Value: 0,
Err: nil,
}
2023-05-05 14:32:17 +08:00
if ui > math.MaxUint32 || ui < 0 {
2023-05-08 17:07:33 +08:00
res.Err = fmt.Errorf("uint32 should between 0 and %v", uint32(math.MaxUint32))
return res
2023-05-05 14:32:17 +08:00
}
2023-05-08 17:07:33 +08:00
res.Value = uint32(ui)
return res
2023-05-05 14:32:17 +08:00
}
// ToUint64 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:30 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToUint64() Uint64Result {
res := Uint64Result{
Value: 0,
Err: nil,
}
2023-05-05 14:32:17 +08:00
if ui > math.MaxUint64 || ui < 0 {
2023-05-08 17:07:33 +08:00
res.Err = fmt.Errorf("uint64 should between 0 and %v", uint64(math.MaxUint64))
2023-05-05 14:32:17 +08:00
}
2023-05-08 17:07:33 +08:00
res.Value = uint64(ui)
return res
2023-05-05 14:32:17 +08:00
}
// ToUint ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:31 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToUint() UintResult {
res := UintResult{
Value: 0,
Err: nil,
}
2023-05-05 14:32:17 +08:00
if ui > math.MaxUint || ui < 0 {
2023-05-08 17:07:33 +08:00
res.Err = fmt.Errorf("uint should between 0 and %v", uint(math.MaxUint))
return res
2023-05-05 14:32:17 +08:00
}
2023-05-08 17:07:33 +08:00
res.Value = uint(ui)
return res
2023-05-05 14:32:17 +08:00
}
// ToString ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:32 2023/5/5
2023-05-08 17:07:33 +08:00
func (ui Uint) ToString() StringResult {
uint64Val := ui.ToUint64()
if nil != uint64Val.Err {
return StringResult{
Value: "",
Err: uint64Val.Err,
}
}
return StringResult{
Value: fmt.Sprintf("%v", uint64Val),
Err: nil,
2023-05-05 16:07:42 +08:00
}
2023-05-05 14:32:17 +08:00
}