ytdl-sub/src/ytdl_sub/script/functions/boolean_functions.py
2023-12-13 14:23:04 -08:00

43 lines
1.3 KiB
Python

from ytdl_sub.script.types.resolvable import Boolean, AnyType
class BooleanFunctions:
@staticmethod
def bool(value: AnyType) -> Boolean:
return Boolean(bool(value.value))
@staticmethod
def equals(left: AnyType, right: AnyType) -> Boolean:
return Boolean(left.value == right.value)
@staticmethod
def lt(left: AnyType, right: AnyType) -> Boolean:
return Boolean(left.value < right.value)
@staticmethod
def lte(left: AnyType, right: AnyType) -> Boolean:
return Boolean(left.value <= right.value)
@staticmethod
def gt(left: AnyType, right: AnyType) -> Boolean:
return Boolean(left.value > right.value)
@staticmethod
def gte(left: AnyType, right: AnyType) -> Boolean:
return Boolean(left.value >= right.value)
@staticmethod
def and_(left: Boolean, right: Boolean) -> Boolean:
return Boolean(left.value and right.value)
@staticmethod
def or_(left: Boolean, right: Boolean) -> Boolean:
return Boolean(left.value or right.value)
@staticmethod
def xor(left: Boolean, right: Boolean) -> Boolean:
return Boolean(left.value ^ right.value)
@staticmethod
def not_(value: Boolean) -> Boolean:
return Boolean(not value.value)