package main import ( "net/url" ) func (t *Targets) UnmarshalYAML(unmarshal func(interface{}) error) error { targets := []string{} err := unmarshal(&targets) if err != nil { return err } *t = Targets{ targets: make([]*url.URL, len(targets)), } for i, u := range targets { u, err := url.Parse(u) if err != nil { return err } t.targets[i] = u } return nil }