github.com/drone/go-convert@v0.0.0-20240307072510-6bd371c65e61/convert/github/yaml/environment.go (about)

     1  package yaml
     2  
     3  import "errors"
     4  
     5  type Environment struct {
     6  	Name string `yaml:"name"`
     7  	URL  string `yaml:"url,omitempty"`
     8  }
     9  
    10  func (v *Environment) UnmarshalYAML(unmarshal func(interface{}) error) error {
    11  	var out1 string
    12  	if err := unmarshal(&out1); err == nil {
    13  		v.Name = out1
    14  		return nil
    15  	}
    16  	var out2 struct {
    17  		Name string `yaml:"name"`
    18  		URL  string `yaml:"url,omitempty"`
    19  	}
    20  	if err := unmarshal(&out2); err == nil {
    21  		*v = out2
    22  		return nil
    23  	}
    24  	return errors.New("failed to unmarshal environment")
    25  }