Skip to main content

luaur_vm/macros/
lua_m_arraysize.rs

1use crate::functions::lua_m_toobig::lua_m_toobig;
2use crate::macros::cast_to::cast_to;
3
4#[allow(non_snake_case)]
5#[macro_export]
6macro_rules! lua_m_arraysize {
7    ($l:expr, $n:expr, $e:expr) => {
8        if $crate::macros::cast_to::cast_to!(usize, $n) <= usize::MAX / $crate::macros::cast_to::cast_to!(usize, $e) {
9            $n * $e
10        } else {
11            $crate::functions::lua_m_toobig::lua_m_toobig($l);
12            usize::MAX
13        }
14    };
15}
16
17pub use lua_m_arraysize;
18
19#[allow(unused_imports)]
20pub use lua_m_arraysize as luaM_arraysize;