# SPDX-License-Identifier: Apache-2.0 from enum import Enum import typing as T class MesonOperator(Enum): # Arithmetic PLUS = '+' MINUS = '-' TIMES = '*' DIV = '/' MOD = '%' UMINUS = 'uminus' # Logic NOT = 'not' # Should return the boolsche interpretation of the value (`'' == false` for instance) BOOL = 'bool()' # Comparison EQUALS = '==' NOT_EQUALS = '!=' GREATER = '>' LESS = '<' GREATER_EQUALS = '>=' LESS_EQUALS = '<=' # Container IN = 'in' NOT_IN = 'not in' INDEX = '[]' # Accessing this directly is about 9x faster than calling MesonOperator(s), # and about 3 times faster than a staticmethod MAPPING: T.Mapping[str, MesonOperator] = {x.value: x for x in MesonOperator}