{"id":25277473,"url":"https://github.com/cstom4994/neko_lua_wrapper","last_synced_at":"2026-05-15T01:04:59.744Z","repository":{"id":264006271,"uuid":"864364607","full_name":"cstom4994/neko_lua_wrapper","owner":"cstom4994","description":"a wrapper for lua api","archived":false,"fork":false,"pushed_at":"2025-03-30T07:25:35.000Z","size":233,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T11:32:04.248Z","etag":null,"topics":["bind","lua","mapping","struct","wrapper"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cstom4994.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-28T03:19:04.000Z","updated_at":"2025-03-30T07:25:38.000Z","dependencies_parsed_at":"2024-11-21T14:19:16.761Z","dependency_job_id":"75c9ac90-f2ef-4f90-9380-aaf4899b44a2","html_url":"https://github.com/cstom4994/neko_lua_wrapper","commit_stats":null,"previous_names":["cstom4994/neko_lua_wrapper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cstom4994/neko_lua_wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cstom4994%2Fneko_lua_wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cstom4994%2Fneko_lua_wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cstom4994%2Fneko_lua_wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cstom4994%2Fneko_lua_wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cstom4994","download_url":"https://codeload.github.com/cstom4994/neko_lua_wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cstom4994%2Fneko_lua_wrapper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265871852,"owners_count":23842088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bind","lua","mapping","struct","wrapper"],"created_at":"2025-02-12T16:54:08.996Z","updated_at":"2025-10-27T22:32:23.243Z","avatar_url":"https://github.com/cstom4994.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# neko_lua_wrapper\n\nWIP\n\n### Enum\n\n```cpp\n// Declaring a custom enumeration type in cpp\nenum TestEnum : int {\n    TestEnum_A,\n    TestEnum_B,\n    TestEnum_C,\n};\n\n// Automatically register it to lua\nLuaEnum\u003cTestEnum\u003e(L);\n\n// Some test functions\nint TestEnumFunc_1(lua_State *L) {\n    auto type_val = LuaGet\u003cTestEnum\u003e(L, 1);\n    lua_pushinteger(L, type_val);\n    return 1;\n}\n\nint TestEnumFunc_2(lua_State *L) {\n    TestEnum type_val = (TestEnum)lua_tointeger(L, 1);\n    LuaPush\u003cTestEnum\u003e(L, type_val);\n    return 1;\n}\n\nlua_register(L, \"TestEnumFunc_1\", TestEnumFunc_1);\nlua_register(L, \"TestEnumFunc_2\", TestEnumFunc_2);\n```\n\n```lua\n-- Test in lua\nprint(TestEnumFunc_1(\"TestEnum_A\")) -- 0\nprint(TestEnumFunc_2(2))            -- \"TestEnum_C\"\n```\n\n### Struct\n\n```cpp\n// Declaring a custom struct type in cpp\nstruct TestStruct {\n    float x, y, z, w;\n    int x1, x2;\n\n    void print() { std::cout \u003c\u003c x \u003c\u003c ' ' \u003c\u003c y \u003c\u003c ' ' \u003c\u003c z \u003c\u003c ' ' \u003c\u003c w \u003c\u003c ' ' \u003c\u003c x1 \u003c\u003c ' ' \u003c\u003c x2 \u003c\u003c std::endl; }\n};\n\nlua_newtable(L);\nLuaStruct\u003cTestStruct\u003e(L, \"TestStruct\"); // Automatically register it to lua\nlua_setglobal(L, \"LuaStruct\");\n\n// Some test functions\nstatic int LuaStruct_test_1(lua_State *L) {\n    auto v = LuaGet\u003cTestStruct\u003e(L, 1);\n    v-\u003ex += 10.f;\n    v-\u003ey += 10.f;\n    v-\u003ez += 10.f;\n    v-\u003ew += 10.f;\n    LuaPush\u003cTestStruct\u003e(L, *v);\n    return 1;\n}\n\nlua_register(L, \"LuaStruct_test_1\", LuaStruct_test_1);\n```\n\n```lua\n-- Test in lua\ntest_struct = LuaStruct.TestStruct.new()\nyour_func(test_struct.x,test_struct.y,test_struct.z,test_struct.w) -- access struct elements directly by field name\ntest_struct = LuaStruct_test_1(test_struct)\nyour_func(test_struct.x,test_struct.y,test_struct.z,test_struct.w)\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcstom4994%2Fneko_lua_wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcstom4994%2Fneko_lua_wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcstom4994%2Fneko_lua_wrapper/lists"}