3 type AnnounceList [][]string
5 func (al AnnounceList) Clone() (ret AnnounceList) {
6 for _, tier := range al {
7 ret = append(ret, append([]string(nil), tier...))
12 // Whether the AnnounceList should be preferred over a single URL announce.
13 func (al AnnounceList) OverridesAnnounce(announce string) bool {
14 for _, tier := range al {
15 for _, url := range tier {
16 if url != "" || announce == "" {
24 func (al AnnounceList) DistinctValues() (ret []string) {
25 seen := make(map[string]struct{})
26 for _, tier := range al {
27 for _, v := range tier {
28 if _, ok := seen[v]; !ok {