升级接口约束

This commit is contained in:
白茶清欢 2025-05-04 13:59:08 +08:00
parent 0c3d7b7e92
commit 8d68e6106e
7 changed files with 22 additions and 4 deletions

View File

@ -15,6 +15,8 @@ import "io"
// //
// Date : 16:55 2024/10/23 // Date : 16:55 2024/10/23
type Serializable interface { type Serializable interface {
// Unmarshal 反序列化
Unmarshal(byteData []byte, receiver any) error
// UnmarshalWithNumber 反序列化,同时解析数字 // UnmarshalWithNumber 反序列化,同时解析数字
UnmarshalWithNumber(byteData []byte, receiver any) error UnmarshalWithNumber(byteData []byte, receiver any) error
// UnmarshalWithNumberIgnoreError 反序列化,同时解析数字, 忽略结果的成功与失败 // UnmarshalWithNumberIgnoreError 反序列化,同时解析数字, 忽略结果的成功与失败

6
go.mod
View File

@ -9,10 +9,8 @@ require (
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e
github.com/BurntSushi/toml v1.5.0 github.com/BurntSushi/toml v1.5.0
github.com/go-ini/ini v1.67.0 github.com/go-ini/ini v1.67.0
github.com/sbabiv/xml2map v1.2.1
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )
require ( require github.com/stretchr/testify v1.9.0 // indirect
github.com/sbabiv/xml2map v1.2.1 // indirect
github.com/stretchr/testify v1.9.0 // indirect
)

4
ini.go
View File

@ -20,6 +20,10 @@ var (
type ownIni struct { type ownIni struct {
} }
func (o *ownIni) Unmarshal(byteData []byte, receiver any) error {
return o.UnmarshalWithNumber(byteData, receiver)
}
func (o *ownIni) UnmarshalWithNumber(byteData []byte, receiver any) error { func (o *ownIni) UnmarshalWithNumber(byteData []byte, receiver any) error {
if nil == receiver { if nil == receiver {
return errors.New("receiver is nil") return errors.New("receiver is nil")

View File

@ -33,6 +33,10 @@ func init() {
type ownJSON struct { type ownJSON struct {
} }
func (oj *ownJSON) Unmarshal(byteData []byte, receiver any) error {
return oj.UnmarshalWithNumber(byteData, receiver)
}
// UnmarshalWithNumber 解析json // UnmarshalWithNumber 解析json
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>

View File

@ -21,6 +21,10 @@ var (
type ownToml struct { type ownToml struct {
} }
func (o *ownToml) Unmarshal(byteData []byte, receiver any) error {
return o.UnmarshalWithNumber(byteData, receiver)
}
func (o *ownToml) Parse(byteData []byte, receiver any) (*toml.MetaData, error) { func (o *ownToml) Parse(byteData []byte, receiver any) (*toml.MetaData, error) {
if nil == receiver { if nil == receiver {
return nil, errors.New("receiver is nil") return nil, errors.New("receiver is nil")

3
xml.go
View File

@ -20,6 +20,9 @@ var (
type ownXml struct{} type ownXml struct{}
func (o *ownXml) Unmarshal(byteData []byte, receiver any) error {
return o.UnmarshalWithNumber(byteData, receiver)
}
func (o *ownXml) UnmarshalWithNumber(byteData []byte, receiver any) error { func (o *ownXml) UnmarshalWithNumber(byteData []byte, receiver any) error {
res, err := xml2map.NewDecoder(bytes.NewReader(byteData)).Decode() res, err := xml2map.NewDecoder(bytes.NewReader(byteData)).Decode()
if nil != err { if nil != err {

3
yml.go
View File

@ -40,6 +40,9 @@ func (o *ownYml) MarshalForStringIgnoreError(input any) string {
return string(o.MarshalForByteIgnoreError(input)) return string(o.MarshalForByteIgnoreError(input))
} }
func (o *ownYml) Unmarshal(byteData []byte, receiver any) error {
return o.UnmarshalWithNumber(byteData, receiver)
}
func (o *ownYml) UnmarshalWithNumber(byteData []byte, receiver any) error { func (o *ownYml) UnmarshalWithNumber(byteData []byte, receiver any) error {
return yaml.NewDecoder(bytes.NewReader(byteData)).Decode(receiver) return yaml.NewDecoder(bytes.NewReader(byteData)).Decode(receiver)
} }