use crate::util::Utf16String;
use super::{ComplexExpression, IStandardExpression};
pub trait GreaterLesserExpression: ComplexExpression {
fn greater_than_operator() -> Utf16String {
Utf16String::from_rust_str(">")
}
fn greater_or_equal_to_operator() -> Utf16String {
Utf16String::from_rust_str(">=")
}
fn less_than_operator() -> Utf16String {
Utf16String::from_rust_str("<")
}
fn less_or_equal_to_operator() -> Utf16String {
Utf16String::from_rust_str("<=")
}
fn is_left_allowed(left: Option<&dyn IStandardExpression>) -> bool {
operand_allowed(left)
}
fn is_right_allowed(right: Option<&dyn IStandardExpression>) -> bool {
operand_allowed(right)
}
}
fn operand_allowed(expression: Option<&dyn IStandardExpression>) -> bool {
expression.is_some_and(|expression| {
!expression.is_token_expression()
|| expression.is_number_token_expression()
|| expression.is_generic_token_expression()
})
}