/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/lua/cpp11_director_enums_runme.lua
37 строк
1 KB
Erez Geva
More Lua tests (#3405)
31 май 2026, 17:09
31 май 2026, 17:09
a1b3ca8
Код
Авторство
О чём код?
require("cpp11_director_enums") -- Create a derived classes local MyEnumsCB = {} function MyEnumsCB:new() local parent = cpp11_director_enums.Cpp11DirectorEnumsCallback self.__index = self -- Inherit Foo setmetatable(self, { __index = parent }) -- Inside swig_derive() we can only call the partent methods! local obj = parent() local color = cpp11_director_enums.Color_Red -- Use SWIG-provided helper to set multiple overrides at once swig_derive(obj, { f = function(self, c) if c == cpp11_director_enums.Color_Red then return cpp11_director_enums.Color_Green end return c end, g = function(self, c) -- TODO pass a reference to Color return cpp11_director_enums.Color_Blue end }) return obj end local m = MyEnumsCB:new() assert(m:f(cpp11_director_enums.Color_Red) == cpp11_director_enums.Color_Green) assert(m:f(cpp11_director_enums.Color_Blue) == cpp11_director_enums.Color_Blue) --[[ TODO pass reference of Color assert(m:g(cpp11_director_enums.Color_Blue) == cpp11_director_enums.Color_Red) assert(m:g(cpp11_director_enums.Color_Green) == cpp11_director_enums.Color_Green) ]]