|
welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
|
| docs | |
| src | |
| welder | |
| rods | |
| lua | |
| luabridge | |
| module.hpp | Full-automation entry point for the LuaBridge3 Lua rod: the expansion behind WELDER_MODULE(ns, luabridge) |
| rod.hpp | Welder LuaBridge3 Lua rod (header-only) |
| luacats | |
| document.hpp | The LuaCATS document assembler: how a ---@meta stub is built up in memory |
| module.hpp | Full-automation entry point for the LuaCATS stub rod: the WELDER_LUACATS_MAIN generator-main() macro |
| rod.hpp | Welder LuaCATS stub rod (header-only, text-emitting) |
| type_map.hpp | The low-level rendering primitives of the LuaCATS stub backend: the C++→LuaCATS type map**, the C++-operator → ---@operator name map, the "native" caster trait, and the small text helpers the document assembler (<welder/rods/lua/luacats/document.hpp>) and the backend share |
| sol2 | |
| metamethods.hpp | The C++-operator → sol2 metamethod map, factored out of the sol2 backend |
| module.hpp | Full-automation entry point for the sol2 Lua rod: the expansion behind WELDER_MODULE(ns, sol2) |
| rod.hpp | Welder sol2 Lua rod (header-only) |
| metamethods.hpp | The C++-operator → Lua metamethod name map, shared by both Lua runtime rods (sol2 and LuaBridge3) |
| python | |
| nanobind | |
| module.hpp | Full-automation entry point for the nanobind rod: the expansion behind WELDER_MODULE(ns, nanobind) |
| rod.hpp | Welder nanobind rod (header-only) |
| trampoline.hpp | Nanobind's half of welder's virtual-override support: the reflection-driven dispatch helper that replaces NB_OVERRIDE / NB_OVERRIDE_PURE, and the WELDER_PY_TRAMPOLINE / WELDER_PY_OVERRIDE authoring macros |
| pybind11 | |
| module.hpp | Full-automation entry point for the pybind11 rod: the expansion behind WELDER_MODULE(ns, pybind11) |
| rod.hpp | Welder pybind11 rod (header-only) |
| trampoline.hpp | Pybind11's half of welder's virtual-override support: the reflection-driven dispatch helper that replaces PYBIND11_OVERRIDE / PYBIND11_OVERRIDE_PURE, and the WELDER_PY_TRAMPOLINE / WELDER_PY_OVERRIDE authoring macros |
| trampolines | |
| document.hpp | The text-emitting core of welder's trampoline-generator rod: the consteval routine that renders a hand-written-equivalent pybind11/nanobind trampoline for a welded virtual type, plus the small document that accumulates the generated structs and their trampoline_for registrations |
| module.hpp | Full-automation entry point for the trampoline-generator rod: the WELDER_TRAMPOLINES_MAIN generator-main() macro |
| rod.hpp | Welder trampoline-generator rod (header-only, text-emitting) |
| doc_style.hpp | Docstring styles shared by welder's Python backends |
| naming.hpp | The PEP 8 name style shared by welder's Python backends |
| operators.hpp | The C++-operator → Python special-method ("dunder") map shared by welder's Python backends |
| trampoline.hpp | Virtual-function overriding support shared by welder's Python backends |
| annotations.hpp | The annotation vocabulary users attach to their types — weld, policy, mark, doc, returns, tparam |
| bind_traits.hpp | Backend-agnostic selection layer: the reflection predicates and selectors that decide what participates in a binding — which constructors, methods, operators, data members, namespace entities and base classes are eligible, and what their parameter names/types are |
| bindable.hpp | Backend-agnostic bindability ("can the target language represent this type?") |
| carriage.hpp | The carriage: welder's reflection-driven traversal driver, kept separate from the welder::welder<> entry point (<welder/welder.hpp>) it feeds |
| concepts.hpp | The core interface concepts welder's static polymorphism rests on, gathered in one catalogue: the customization-point contracts a rod (or a user) plugs into |
| diag.hpp | Welder's consteval diagnostics, collected in one place: every hand-rolled compile-time error the library raises beyond a static_assert is one of the exception types below, thrown during constant evaluation (a C++26 constexpr exception) |
| doc.hpp | Language-agnostic documentation layer: read [[=welder::doc(...)]] annotations off reflected entities and assemble them into a docstring under a pluggable style |
| lang.hpp | Target-language vocabulary — the set of languages welder can bind to |
| module.hpp | Rod-agnostic module entry point — the WELDER_MODULE macro |
| naming.hpp | Language-agnostic name styling: reshape a C++ identifier into a target language's naming convention, and resolve the final bound name of an entity (honouring a verbatim [[=welder::weld_as]] override first) |
| reflect.hpp | Language-agnostic resolution: given a reflected type/member and a target language, decide what participates in binding |
| version.hpp | Welder's version identity and ABI namespace |
| vocabulary.hpp | Welder's annotation vocabulary — the single header a consuming TU includes to get the markers it attaches to its types |
| welder.hpp | Welder's binding entry point: the welder::welder struct |