yaml.go 562 B

1234567891011121314151617181920212223242526272829
  1. package parser
  2. import (
  3. "gopkg.in/yaml.v3"
  4. )
  5. func UnmarshalYaml[T any](text string) (T, error) {
  6. return UnmarshalYamlBytes[T]([]byte(text))
  7. }
  8. func UnmarshalYamlBytes[T any](data []byte) (T, error) {
  9. var result T
  10. err := yaml.Unmarshal(data, &result)
  11. return result, err
  12. }
  13. func MarshalYaml[T any](data T) string {
  14. return string(MarshalYamlBytes(data))
  15. }
  16. func MarshalYamlBytes[T any](data T) []byte {
  17. b, _ := yaml.Marshal(data)
  18. return b
  19. }
  20. func UnmarshalYaml2Map(yaml []byte) (map[string]any, error) {
  21. return UnmarshalYamlBytes[map[string]any](yaml)
  22. }