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
|
|
|
}
|
|
|
|
|
2023-05-16 11:00:23 +08:00
|
|
|
// ToUint8Ptr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:54 2023/5/16
|
|
|
|
func (ui Uint) ToUint8Ptr() Uint8PtrResult {
|
|
|
|
res := ui.ToUint8()
|
|
|
|
if nil != res.Err {
|
|
|
|
return Uint8PtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Uint8PtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2023-05-16 11:00:23 +08:00
|
|
|
// ToUint16Ptr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:55 2023/5/16
|
|
|
|
func (ui Uint) ToUint16Ptr() Uint16PtrResult {
|
|
|
|
res := ui.ToUint16()
|
|
|
|
if nil != res.Err {
|
|
|
|
return Uint16PtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Uint16PtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2023-05-16 11:00:23 +08:00
|
|
|
// ToUint32Ptr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:55 2023/5/16
|
|
|
|
func (ui Uint) ToUint32Ptr() Uint32PtrResult {
|
|
|
|
res := ui.ToUint32()
|
|
|
|
if nil != res.Err {
|
|
|
|
return Uint32PtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Uint32PtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2023-05-16 11:00:23 +08:00
|
|
|
// ToUint64Ptr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:57 2023/5/16
|
|
|
|
func (ui Uint) ToUint64Ptr() Uint64PtrResult {
|
|
|
|
res := ui.ToUint64()
|
|
|
|
if nil != res.Err {
|
|
|
|
return Uint64PtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Uint64PtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2023-05-16 11:00:23 +08:00
|
|
|
// ToUintPtr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:57 2023/5/16
|
|
|
|
func (ui Uint) ToUintPtr() UintPtrResult {
|
|
|
|
res := ui.ToUint()
|
|
|
|
if nil != res.Err {
|
|
|
|
return UintPtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return UintPtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
}
|
2023-05-16 11:00:23 +08:00
|
|
|
|
|
|
|
// ToStringPtr ...
|
|
|
|
//
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
//
|
|
|
|
// Date : 10:59 2023/5/16
|
|
|
|
func (ui Uint) ToStringPtr() StringPtrResult {
|
|
|
|
res := ui.ToString()
|
|
|
|
if nil != res.Err {
|
|
|
|
return StringPtrResult{
|
|
|
|
Value: nil,
|
|
|
|
Err: res.Err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return StringPtrResult{
|
|
|
|
Value: &res.Value,
|
|
|
|
Err: nil,
|
|
|
|
}
|
|
|
|
}
|