luaur_bytecode/macros/
vconst.rs1#[allow(unused_macros)]
2macro_rules! VCONST {
3 (@kind Nil) => {
4 crate::enums::r#type::Type::Type_Nil
5 };
6 (@kind Boolean) => {
7 crate::enums::r#type::Type::Type_Boolean
8 };
9 (@kind Number) => {
10 crate::enums::r#type::Type::Type_Number
11 };
12 (@kind Integer) => {
13 crate::enums::r#type::Type::Type_Integer
14 };
15 (@kind Vector) => {
16 crate::enums::r#type::Type::Type_Vector
17 };
18 (@kind String) => {
19 crate::enums::r#type::Type::Type_String
20 };
21 (@kind Import) => {
22 crate::enums::r#type::Type::Type_Import
23 };
24 (@kind Table) => {
25 crate::enums::r#type::Type::Type_Table
26 };
27 (@kind Closure) => {
28 crate::enums::r#type::Type::Type_Closure
29 };
30 (@kind ClassShape) => {
31 crate::enums::r#type::Type::Type_ClassShape
32 };
33 ($v:expr, $kind:ident, $constants:expr) => {
34 LUAU_ASSERT!(
35 ($v as usize) < $constants.len()
36 && $constants[$v as usize].r#type == VCONST!(@kind $kind)
37 )
38 };
39}
40
41pub(crate) use VCONST;