use std::fmt::Display;
#[derive(Clone)]
pub enum IntUnaryOp {
Abs,
Sgn,
Neg,
BNot,
}
impl Display for IntUnaryOp {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
IntUnaryOp::Abs => write!(f, "abs"),
IntUnaryOp::Sgn => write!(f, "sgn"),
IntUnaryOp::Neg => write!(f, "neg"),
IntUnaryOp::BNot => write!(f, "bnot"),
}
}
}
#[derive(Clone)]
pub enum FloatUnaryOp {
Abs,
Sgn,
Neg,
Floor,
Ceil,
Round,
Sin,
Cos,
Tan,
Asin,
Acos,
Atan,
Exp,
Log10,
Log2,
Sqrt,
}
impl Display for FloatUnaryOp {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
FloatUnaryOp::Abs => write!(f, "abs"),
FloatUnaryOp::Sgn => write!(f, "sgn"),
FloatUnaryOp::Neg => write!(f, "neg"),
FloatUnaryOp::Floor => write!(f, "floor"),
FloatUnaryOp::Ceil => write!(f, "ceil"),
FloatUnaryOp::Round => write!(f, "round"),
FloatUnaryOp::Sin => write!(f, "sin"),
FloatUnaryOp::Cos => write!(f, "cos"),
FloatUnaryOp::Tan => write!(f, "tan"),
FloatUnaryOp::Asin => write!(f, "asin"),
FloatUnaryOp::Acos => write!(f, "acos"),
FloatUnaryOp::Atan => write!(f, "atan"),
FloatUnaryOp::Exp => write!(f, "exp"),
FloatUnaryOp::Log10 => write!(f, "log10"),
FloatUnaryOp::Log2 => write!(f, "log2"),
FloatUnaryOp::Sqrt => write!(f, "sqrt"),
}
}
}