Files
MoonVeil-Docs/content/docs/macros/MV_INLINE.md

886 B

weight, title, description, icon, date, lastmod
weight title description icon date lastmod
100 MV_INLINE Make preprocessor macros code_blocks 2025-05-01T18:47:58-05:00 2025-05-01T18:47:58-05:00

declare function MV_INLINE<A..., R...>(inlineFunction: (A...) -> R...): (A...) -> R...

will mark the passed function to be inlined where used.

Some limitations apply:

  • The passed function cannot be variadic (i.e. no ... usage)
  • The passed function cannot tailcall or otherwise recursively call itself.
  • You must use this macro in it's specific form, i.e. local <var> = MV_INLINE(function() ... end)

Valid Usage

local testFunc = MV_INLINE(function(start, endn)
    local total = 0
    for i = start, endn do
        total = total + i
    end
    return total
end)

local testFunc2 = MV_INLINE(function()
    return testFunc(1, 10), testFunc(11, 20), testFunc(1, 15)
end)

print(testFunc2())