blob: d17cd3796576f284e82fcd41d63e75282d3cd0b3 [file]
# 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}