| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- package parser
 
- import (
 
- 	"github.com/go-playground/validator/v10"
 
- 	"gopkg.in/yaml.v3"
 
- )
 
- func UnmarshalYaml[T any](text string, validator ...validator.Validate) (T, error) {
 
- 	return UnmarshalYamlBytes[T]([]byte(text), validator...)
 
- }
 
- func UnmarshalYamlBytes[T any](data []byte, validator ...validator.Validate) (T, error) {
 
- 	var result T
 
- 	err := yaml.Unmarshal(data, &result)
 
- 	if err != nil {
 
- 		return result, err
 
- 	}
 
- 	if len(validator) > 0 {
 
- 		if err := validator[0].Struct(result); err != nil {
 
- 			return result, err
 
- 		}
 
- 	}
 
- 	return result, err
 
- }
 
- func MarshalYaml[T any](data T) string {
 
- 	return string(MarshalYamlBytes(data))
 
- }
 
- func MarshalYamlBytes[T any](data T) []byte {
 
- 	b, _ := yaml.Marshal(data)
 
- 	return b
 
- }
 
- func UnmarshalYaml2Map(yaml []byte) (map[string]any, error) {
 
- 	return UnmarshalYamlBytes[map[string]any](yaml)
 
- }
 
 
  |