macroforge_ts_quote 0.1.82

Quote macro for generating TypeScript code at compile time
Documentation
use super::*;

impl Codegen {
    pub(super) fn generate_binary_op(&self, op: &BinaryOp) -> TokenStream {
        match op {
            BinaryOp::Add => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Add },
            BinaryOp::Sub => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Sub },
            BinaryOp::Mul => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Mul },
            BinaryOp::Div => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Div },
            BinaryOp::Mod => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Mod },
            BinaryOp::Exp => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Exp },
            BinaryOp::EqEq => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::EqEq },
            BinaryOp::NotEq => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::NotEq },
            BinaryOp::EqEqEq => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::EqEqEq },
            BinaryOp::NotEqEq => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::NotEqEq },
            BinaryOp::Lt => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Lt },
            BinaryOp::Le => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::LtEq },
            BinaryOp::Gt => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::Gt },
            BinaryOp::Ge => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::GtEq },
            BinaryOp::And => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::LogicalAnd },
            BinaryOp::Or => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::LogicalOr },
            BinaryOp::NullishCoalesce => {
                quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::NullishCoalescing }
            }
            BinaryOp::BitAnd => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::BitAnd },
            BinaryOp::BitOr => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::BitOr },
            BinaryOp::BitXor => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::BitXor },
            BinaryOp::Shl => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::LShift },
            BinaryOp::Shr => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::RShift },
            BinaryOp::UShr => {
                quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::ZeroFillRShift }
            }
            BinaryOp::In => quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::In },
            BinaryOp::InstanceOf => {
                quote! { macroforge_ts::swc_core::ecma::ast::BinaryOp::InstanceOf }
            }
        }
    }

    pub(super) fn generate_assign_op(&self, op: &AssignOp) -> TokenStream {
        match op {
            AssignOp::Assign => quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::Assign },
            AssignOp::AddAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::AddAssign }
            }
            AssignOp::SubAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::SubAssign }
            }
            AssignOp::MulAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::MulAssign }
            }
            AssignOp::DivAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::DivAssign }
            }
            AssignOp::ModAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::ModAssign }
            }
            AssignOp::ExpAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::ExpAssign }
            }
            AssignOp::ShlAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::LShiftAssign }
            }
            AssignOp::ShrAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::RShiftAssign }
            }
            AssignOp::UShrAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::ZeroFillRShiftAssign }
            }
            AssignOp::BitAndAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::BitAndAssign }
            }
            AssignOp::BitOrAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::BitOrAssign }
            }
            AssignOp::BitXorAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::BitXorAssign }
            }
            AssignOp::AndAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::AndAssign }
            }
            AssignOp::OrAssign => quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::OrAssign },
            AssignOp::NullishAssign => {
                quote! { macroforge_ts::swc_core::ecma::ast::AssignOp::NullishAssign }
            }
        }
    }
}