Add format config support
This commit is contained in:
@@ -2,33 +2,33 @@ package option
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/sagernet/sing/common/x/linkedhashmap"
|
||||
)
|
||||
|
||||
func ToMap(v any) (map[string]any, error) {
|
||||
func ToMap(v any) (*linkedhashmap.Map[string, any], error) {
|
||||
bytes, err := json.Marshal(v)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var content map[string]any
|
||||
var content linkedhashmap.Map[string, any]
|
||||
err = json.Unmarshal(bytes, &content)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return content, nil
|
||||
return &content, nil
|
||||
}
|
||||
|
||||
func MergeObjects(objects ...any) (map[string]any, error) {
|
||||
content := make(map[string]any)
|
||||
func MergeObjects(objects ...any) (*linkedhashmap.Map[string, any], error) {
|
||||
var content linkedhashmap.Map[string, any]
|
||||
for _, object := range objects {
|
||||
objectMap, err := ToMap(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for k, v := range objectMap {
|
||||
content[k] = v
|
||||
}
|
||||
content.PutAll(objectMap)
|
||||
}
|
||||
return content, nil
|
||||
return &content, nil
|
||||
}
|
||||
|
||||
func MarshallObjects(objects ...any) ([]byte, error) {
|
||||
|
||||
Reference in New Issue
Block a user