43 lines
1.3 KiB
Python
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)
|