github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/pkg/kubernetes/k8s/yaml.go (about) 1 package k8s 2 3 import "encoding/json" 4 5 func MarshalYAML(ptr interface{}) (interface{}, error) { 6 if ptr == nil { 7 return nil, nil 8 } 9 10 intermediate, err := json.Marshal(ptr) 11 if err != nil { 12 return nil, err 13 } 14 15 result := make(map[string]interface{}) 16 17 return result, json.Unmarshal(intermediate, &result) 18 } 19 20 func UnmarshalYAML(ptr interface{}, unmarshal func(interface{}) error) error { 21 generic := make(map[string]interface{}) 22 if err := unmarshal(&generic); err != nil { 23 return err 24 } 25 26 intermediate, err := json.Marshal(generic) 27 if err != nil { 28 return err 29 } 30 31 return json.Unmarshal(intermediate, ptr) 32 }