Skip to main content

luaur_code_gen/functions/
opcode_to_host_metamethod.rs

1use luaur_common::enums::luau_opcode::LuauOpcode;
2
3use crate::enums::host_metamethod::HostMetamethod;
4
5#[inline]
6pub fn opcode_to_host_metamethod(op: LuauOpcode) -> HostMetamethod {
7    match op {
8        LuauOpcode::LOP_ADD => HostMetamethod::Add,
9        LuauOpcode::LOP_SUB => HostMetamethod::Sub,
10        LuauOpcode::LOP_MUL => HostMetamethod::Mul,
11        LuauOpcode::LOP_DIV => HostMetamethod::Div,
12        LuauOpcode::LOP_IDIV => HostMetamethod::Idiv,
13        LuauOpcode::LOP_MOD => HostMetamethod::Mod,
14        LuauOpcode::LOP_POW => HostMetamethod::Pow,
15
16        LuauOpcode::LOP_ADDK => HostMetamethod::Add,
17        LuauOpcode::LOP_SUBK => HostMetamethod::Sub,
18        LuauOpcode::LOP_MULK => HostMetamethod::Mul,
19        LuauOpcode::LOP_DIVK => HostMetamethod::Div,
20        LuauOpcode::LOP_IDIVK => HostMetamethod::Idiv,
21        LuauOpcode::LOP_MODK => HostMetamethod::Mod,
22        LuauOpcode::LOP_POWK => HostMetamethod::Pow,
23
24        LuauOpcode::LOP_SUBRK => HostMetamethod::Sub,
25        LuauOpcode::LOP_DIVRK => HostMetamethod::Div,
26
27        _ => HostMetamethod::Add,
28    }
29}