...

Source file src/sigs.k8s.io/kustomize/kyaml/sets/string.go

Documentation: sigs.k8s.io/kustomize/kyaml/sets

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package sets
     5  
     6  type String map[string]interface{}
     7  
     8  func (s String) Len() int {
     9  	return len(s)
    10  }
    11  
    12  func (s String) List() []string {
    13  	val := make([]string, 0, len(s))
    14  	for k := range s {
    15  		val = append(val, k)
    16  	}
    17  	return val
    18  }
    19  
    20  func (s String) Has(val string) bool {
    21  	_, found := s[val]
    22  	return found
    23  }
    24  
    25  func (s String) Insert(vals ...string) {
    26  	for _, val := range vals {
    27  		s[val] = nil
    28  	}
    29  }
    30  
    31  func (s String) Difference(s2 String) String {
    32  	s3 := String{}
    33  	for k := range s {
    34  		if _, found := s2[k]; !found {
    35  			s3.Insert(k)
    36  		}
    37  	}
    38  	return s3
    39  }
    40  
    41  func (s String) SymmetricDifference(s2 String) String {
    42  	s3 := String{}
    43  	for k := range s {
    44  		if _, found := s2[k]; !found {
    45  			s3.Insert(k)
    46  		}
    47  	}
    48  	for k := range s2 {
    49  		if _, found := s[k]; !found {
    50  			s3.Insert(k)
    51  		}
    52  	}
    53  	return s3
    54  }
    55  
    56  func (s String) Intersection(s2 String) String {
    57  	s3 := String{}
    58  	for k := range s {
    59  		if _, found := s2[k]; found {
    60  			s3.Insert(k)
    61  		}
    62  	}
    63  	return s3
    64  }
    65  

View as plain text