welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
Loading...
Searching...
No Matches
File List
Here is a list of all files with brief descriptions:
 
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