code: func (r *Requirement) Matches(ls Labels) bool {
  	switch r.operator {
  	case InOperator, EqualsOperator, DoubleEqualsOperator:
  		if !ls.Has(r.key) {
  			return false
  		}
  		return r.strValues.Has(ls.Get(r.key))
  	case NotInOperator, NotEqualsOperator:
  		if !ls.Has(r.key) {
  			return true
  		}
  		return !r.strValues.Has(ls.Get(r.key))
  	case ExistsOperator:
  		return ls.Has(r.key)
  	case DoesNotExistOperator:
  		return !ls.Has(r.key)
  	default:
  		return false
  	}
  }
docs: // Matches returns true if the Requirement matches the input Labels.
  // There is a match in the following cases:
  // (1) The operator is Exists and Labels has the Requirement's key.
  // (2) The operator is In, Labels has the Requirement's key and Labels'
  //     value for that key is in Requirement's value set.
  // (3) The operator is NotIn, Labels has the Requirement's key and
  //     Labels' value for that key is not in Requirement's value set.
  // (4) The operator is DoesNotExist or NotIn and Labels does not have the
  //     Requirement's key.