github.com/safing/portbase@v0.19.5/database/query/operators.go (about)

     1  package query
     2  
     3  var (
     4  	operatorNames = map[string]uint8{
     5  		"==":         Equals,
     6  		">":          GreaterThan,
     7  		">=":         GreaterThanOrEqual,
     8  		"<":          LessThan,
     9  		"<=":         LessThanOrEqual,
    10  		"f==":        FloatEquals,
    11  		"f>":         FloatGreaterThan,
    12  		"f>=":        FloatGreaterThanOrEqual,
    13  		"f<":         FloatLessThan,
    14  		"f<=":        FloatLessThanOrEqual,
    15  		"sameas":     SameAs,
    16  		"s==":        SameAs,
    17  		"contains":   Contains,
    18  		"co":         Contains,
    19  		"startswith": StartsWith,
    20  		"sw":         StartsWith,
    21  		"endswith":   EndsWith,
    22  		"ew":         EndsWith,
    23  		"in":         In,
    24  		"matches":    Matches,
    25  		"re":         Matches,
    26  		"is":         Is,
    27  		"exists":     Exists,
    28  		"ex":         Exists,
    29  	}
    30  
    31  	primaryNames = make(map[uint8]string)
    32  )
    33  
    34  func init() {
    35  	for opName, opID := range operatorNames {
    36  		name, ok := primaryNames[opID]
    37  		if ok {
    38  			if len(name) < len(opName) {
    39  				primaryNames[opID] = opName
    40  			}
    41  		} else {
    42  			primaryNames[opID] = opName
    43  		}
    44  	}
    45  }
    46  
    47  func getOpName(operator uint8) string {
    48  	name, ok := primaryNames[operator]
    49  	if ok {
    50  		return name
    51  	}
    52  	return "[unknown]"
    53  }