//! Translation implementations for arithmetic operators

use crate::utils::direct_binary_operator_translation;
use crate::TranslationRegistry;
use hamelin_lib::func::defs::{
    NumericDivide, NumericMinus, NumericModulo, NumericMultiply, NumericPlus,
};

/// Register all arithmetic operator translations.
pub fn register(registry: &mut TranslationRegistry) {
    // All arithmetic operators use direct binary operator translation
    registry.register::<NumericPlus>(direct_binary_operator_translation);
    registry.register::<NumericMinus>(direct_binary_operator_translation);
    registry.register::<NumericMultiply>(direct_binary_operator_translation);
    registry.register::<NumericDivide>(direct_binary_operator_translation);
    registry.register::<NumericModulo>(direct_binary_operator_translation);
}
