diff options
Diffstat (limited to '3rdparty/sol2/docs/source/index.rst')
-rw-r--r-- | 3rdparty/sol2/docs/source/index.rst | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/3rdparty/sol2/docs/source/index.rst b/3rdparty/sol2/docs/source/index.rst new file mode 100644 index 00000000000..b1ec3a4f276 --- /dev/null +++ b/3rdparty/sol2/docs/source/index.rst @@ -0,0 +1,123 @@ +.. Sol documentation master file, created by + sphinx-quickstart on Mon Feb 29 21:49:51 2016. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. image:: sol.png + :target: https://github.com/ThePhD/sol2 + :alt: sol2 repository + +Sol 2.14 +======== +a fast, simple C++ and Lua Binding +---------------------------------- + +When you need to hit the ground running with Lua and C++, `Sol`_ is the go-to framework for high-performance binding with an easy to use API. + +.. image:: https://travis-ci.org/ThePhD/sol2.svg?branch=develop + :target: https://travis-ci.org/ThePhD/sol2 + :alt: build status + +get going: +---------- + +.. toctree:: + :maxdepth: 1 + :name: mastertoc + + tutorial/all-the-things + tutorial/tutorial-top + features + api/api-top + mentions + benchmarks + performance + safety + exceptions + rtti + codecvt + cmake + licenses + origin + + +"I need feature X, maybe you have it?" +-------------------------------------- +Take a look at the :doc:`Features<features>` page: it links to much of the API. You can also just straight up browse the :doc:`api<api/api-top>` or ease in with the :doc:`tutorials<tutorial/tutorial-top>`. Don't see a feature you want? Send inquiries for support for a particular abstraction to the `issues`_ tracker. + + +the basics: +----------- + +.. note:: + More examples can be found in the `examples directory`_ + + +.. code-block:: c++ + :caption: functions + :linenos: + + #include <sol.hpp> + #include <cassert> + + int main() { + sol::state lua; + int x = 0; + lua.set_function("beep", [&x]{ ++x; }); + lua.script("beep()"); + assert(x == 1); + + sol::function beep = lua["beep"]; + beep(); + assert(x == 2); + + return 0; + } + + +.. code-block:: c++ + :caption: linking C++ structures to Lua + :linenos: + + #include <sol.hpp> + #include <cassert> + + struct vars { + int boop = 0; + + int bop () const { + return boop + 1; + } + }; + + int main() { + sol::state lua; + lua.new_usertype<vars>("vars", + "boop", &vars::boop + "bop", &vars::bop); + lua.script("beep = vars.new()\n" + "beep.boop = 1\n" + "bopvalue = beep:bop()"); + + vars& beep = lua["beep"]; + int bopvalue = lua["bopvalue"]; + + assert(beep.boop == 1); + assert(lua.get<vars>("beep").boop == 1); + assert(beep.bop() == 2); + assert(bopvalue == 2); + + return 0; + } + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` + +.. _Sol: https://github.com/ThePhD/sol2 +.. _issues: https://github.com/ThePhD/sol2/issues +.. _examples directory: https://github.com/ThePhD/sol2/tree/develop/examples
\ No newline at end of file |