优化配置重载程序

This commit is contained in:
刘祥超
2022-11-25 10:50:57 +08:00
parent e82f207935
commit a64047a934
4 changed files with 138 additions and 29 deletions

View File

@@ -7,7 +7,7 @@ import (
"github.com/iwind/TeaGo/maps"
)
func MapToObject(m maps.Map, ptr interface{}) error {
func MapToObject(m maps.Map, ptr any) error {
if m == nil {
return nil
}
@@ -18,7 +18,7 @@ func MapToObject(m maps.Map, ptr interface{}) error {
return json.Unmarshal(mJSON, ptr)
}
func ObjectToMap(ptr interface{}) (maps.Map, error) {
func ObjectToMap(ptr any) (maps.Map, error) {
if ptr == nil {
return maps.Map{}, nil
}
@@ -33,3 +33,12 @@ func ObjectToMap(ptr interface{}) (maps.Map, error) {
}
return result, nil
}
func Copy(destPtr any, srcPtr any) error {
data, err := json.Marshal(srcPtr)
if err != nil {
return err
}
err = json.Unmarshal(data, destPtr)
return err
}

View File

@@ -3,11 +3,12 @@
package jsonutils
import (
"bytes"
"encoding/json"
"testing"
)
func PrintT(obj interface{}, t *testing.T) {
func PrintT(obj any, t *testing.T) {
data, err := json.MarshalIndent(obj, "", " ")
if err != nil {
t.Log(err)
@@ -15,3 +16,17 @@ func PrintT(obj interface{}, t *testing.T) {
t.Log(string(data))
}
}
func Equal(obj1 any, obj2 any) bool {
data1, err := json.Marshal(obj1)
if err != nil {
return false
}
data2, err := json.Marshal(obj2)
if err != nil {
return false
}
return bytes.Equal(data1, data2)
}

View File

@@ -0,0 +1,26 @@
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
package jsonutils_test
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/jsonutils"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/maps"
"testing"
)
func TestEqual(t *testing.T) {
var a = assert.NewAssertion(t)
{
var m1 = maps.Map{"a": 1, "b2": true}
var m2 = maps.Map{"b2": true, "a": 1}
a.IsTrue(jsonutils.Equal(m1, m2))
}
{
var m1 = maps.Map{"a": 1, "b2": true, "c": nil}
var m2 = maps.Map{"b2": true, "a": 1}
a.IsFalse(jsonutils.Equal(m1, m2))
}
}