github.com/mgoltzsche/ctnr@v0.7.1-alpha/pkg/sliceutils/sliceutils.go (about)

     1  package sliceutils
     2  
     3  func AddToSet(set *[]string, entry string) bool {
     4  	if *set == nil {
     5  		*set = []string{entry}
     6  		return true
     7  	} else if !Contains(*set, entry) {
     8  		*set = append(*set, entry)
     9  		return true
    10  	}
    11  	return false
    12  }
    13  
    14  func RemoveFromSet(set *[]string, entry string) (removed bool) {
    15  	if len(*set) > 0 {
    16  		r := make([]string, 0, len(*set))
    17  		for _, e := range *set {
    18  			if e == entry {
    19  				removed = true
    20  			} else {
    21  				r = append(r, e)
    22  			}
    23  		}
    24  		*set = r
    25  	}
    26  	return
    27  }
    28  
    29  func Contains(set []string, entry string) (found bool) {
    30  	if len(set) > 0 {
    31  		for _, e := range set {
    32  			if e == entry {
    33  				found = true
    34  				break
    35  			}
    36  		}
    37  	}
    38  	return
    39  }