{"id":13730567,"url":"https://github.com/RippeR37/SLACC","last_synced_at":"2025-05-08T03:30:51.568Z","repository":{"id":82163768,"uuid":"48203404","full_name":"RippeR37/SLACC","owner":"RippeR37","description":"Simple Lightweight Adaptable Command Console","archived":false,"fork":false,"pushed_at":"2020-01-21T23:02:38.000Z","size":15,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-14T21:38:07.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RippeR37.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2015-12-17T23:16:46.000Z","updated_at":"2020-06-09T00:57:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"385d7dd8-3552-4c7b-ba3e-2f1700f0e79d","html_url":"https://github.com/RippeR37/SLACC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RippeR37%2FSLACC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RippeR37%2FSLACC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RippeR37%2FSLACC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RippeR37%2FSLACC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RippeR37","download_url":"https://codeload.github.com/RippeR37/SLACC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252992902,"owners_count":21837190,"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":[],"created_at":"2024-08-03T02:01:16.647Z","updated_at":"2025-05-08T03:30:51.508Z","avatar_url":"https://github.com/RippeR37.png","language":"C++","readme":"## SLACC - Simple Lightweight Adaptable Command Console\n\n\nCommand console module written in C++11 for use as in-game console module or simple scripting engine. \n\nThis module have zero dependencies so it's super easy to use in existing projects. It heavily uses variadic templates to provide automatisation of binding commands with functions and nice API. Small usage example below:\n```c++\nvoid func1_ptr(const std::string\u0026 name) {\n    std::cout \u003c\u003c \"Hello \" \u003c\u003c name \u003c\u003c \"!\" \u003c\u003c std::endl;\n}\n\nstd::function\u003cvoid(float)\u003e func2_wrapper = [](float x) {\n    std::cout \u003c\u003c x \u003c\u003c \"^2 = \" \u003c\u003c x*x \u003c\u003c std::endl;\n};\n\nauto func3_lambda = [](int x, float y, const std::string\u0026 z) {\n    std::cout \u003c\u003c x \u003c\u003c y \u003c\u003c z \u003c\u003c std::endl;\n};\n\n/* ... */\n\nCommandConsole cmd;\n\ncmd.bind(\"func1\", func_ptr);      // default parser, types are infered from function pointer\ncmd.bind(\"func2\", func2_wrapper); // default parser, types are infered from std::function wrapper\n// to use lambda, either wrap it in std::function or provide valid parser\ncmd.bind(\"func3\", func3_lambda, Parser::BasicParser::parse\u003cint, float, std::string\u003e);\n\ncmd.execute(\"func1 John\"); // func1_ptr(\"John\")\ncmd.execute(\"func2 11.0\"); // func2_wrapper(11.0f)\ncmd.execute(\"func3 0 3.14 \\\"hello world\\\"\"); // func3_lambda(0, 3.14f, \"hello world\")\n```\n\n\n### Requirements\n- C++11 supporting compiler (project for Visual Studio 2013 provided)\n\n\n### Platforms tested\n- Windows (tested on Windows 7 x64)\n\n\n### Compilers tested\n- MSVC (tested on Visual Studio 2013)\n- GCC (tested on 5.1.0)\n\n\n### Dependencies\nNone!\n\n\n### License\nSee [LICENSE](LICENSE) file.\n\n\n### Examples of usage\nYou can find example usage in `src/main.cpp` file.\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRippeR37%2FSLACC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRippeR37%2FSLACC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRippeR37%2FSLACC/lists"}