welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
Loading...
Searching...
No Matches
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
 Cwelder::rods::sol2::rod::_enum_binding< E >A welded enum's binding: the name→value table, how to mirror a name onto the enclosing scope, and whether the enum is scoped (an unscoped enum also mirrors its names onto the enclosing scope, like C++)
 Cwelder::detail::any_typeA placeholder class type for shape-probing a member template inside a concept
 Cwelder::diag::bare_mark_onlyThrown by member_bound (<welder/reflect.hpp>) when a member carries a bare [[=welder::mark::only]] — "only, for every language" restricts nothing, so the mark must be called
 Cwelder::carriages::basic_carriage< Resolution >A carriage: welder's reflection-driven traversal, parameterized on a Resolution (which markers it obeys)
 Cwelder::rods::python::bind_flat_specThe stored form of a bind_flat mark (a plain tag — it carries no state)
 Cwelder::rods::luabridge::rod::class_handle< T >The class handle threaded from make_class to the add_* hooks: enough to re-open the class (its module, its Lua name) plus the C++ type (via type, recovered by the per-member hooks from decltype)
 Cwelder::rods::trampolines::rod::class_handleThe class handle the driver threads to the per-member hooks
 Cwelder::rods::luacats::class_writerA class handle
 Cwelder::diag::dangling_return_policyThrown by validate_return_policy (<welder/reflect.hpp>) — every rod runs it at its per-overload bind site — when a reference-category return_policy meets a by-value return
 Cwelder::detail::doc_spec< N >The stored form of a doc annotation: a summary docstring
 Cwelder::rods::luacats::documentThe growing LuaCATS document shared by every writer handle
 Cwelder::rods::trampolines::documentThe growing generated header: the trampoline struct bodies and their trampoline_for registrations, kept apart so the structs can share one namespace generated { … } block and the registrations sit at global scope
 CEnum
 Cluabridge::Stack< E, std::enable_if_t< std::is_enum_v< E > > >
 Cwelder::rods::luabridge::rod::enum_handleThe enum handle threaded from make_enum to add_enumerator: the enclosing module, the enum's Lua name (a nested namespace of values) and whether it is scoped (an unscoped enum also mirrors its names onto the module)
 Cwelder::rods::pybind11::rod< DocStyle >::enum_handle< E >Owning handle for a py::native_enum<E>, plus the scope + name to reach the finalized enum object
 Cwelder::rods::trampolines::rod::enum_handleThe enum handle
 Cwelder::rods::luacats::enum_writerAn enum handle: the value table text accumulated by add_enumerator, flushed as a ---@enum block by RAII (same rationale as class_writer)
 Cwelder::detail::exclude_specThe stored form of an exclude mark: the languages a member is hidden from
 Cwelder::detail::field_access< Mem >Splice-based accessors for data member Mem — the pointer-to-member-free route the rods bind a protected field through
 Cwelder::detail::fixed_string< N >A string literal captured by value, length included, so it can live in a structural annotation constant
 Cwelder::rods::luacats::func_overloadOne overload of a callee, pre-rendered into the pieces a group needs: the summary doc, the ---@param block, the ---@return line, the function argument list, and the fun(…) signature for a ---@overload line
 Cwelder::detail::function_docThe raw documentation pieces of a function, handed to a style to assemble
 Cwelder::rods::python::google_styleGoogle-style docstring assembly (the default)
 Cwelder::carriages::greedy_resolution< WeldProtected >Tack-welding resolution: bind an unmarked library greedily
 Cwelder::detail::include_specThe stored form of an include mark: the languages a member is opted into
 Cwelder::detail::keep_alive_pairA keep_alive lifetime dependency: a (nurse, patient) index pair
 Cwelder::detail::keep_alive_specThe stored form of a keep_alive annotation: a lifetime dependency between two of a call's entities, addressed by pybind11/nanobind's index convention (0 = the return value, 1 = the first argument — the implicit this for a method — 2 = the second, …)
 Cwelder::diag::lang_out_of_mask_rangeThrown by lang_bit (<welder/annotations.hpp>) when a lang value lies past the 32-bit language-mask width — instead of an opaque shift-overflow error
 Cwelder::carriages::marker_resolutionStitch-welding resolution: bind only where welder's markers say to
 Cwelder::rods::sol2::metamethodA member operator's sol2 metamethod, or {…, nullptr} if welder does not expose it
 Cwelder::rods::trampolines::rod::module_handleA copyable handle onto the growing document that the driver threads through every emission primitive (the rod's module_type)
 Cwelder::rods::luabridge::rod::module_scopeA copyable handle to a welded module (or submodule) table: the borrowed Lua state plus the namespace path from the global table
 Cwelder::detail::module_welder< Default, Override >Pick the entry macro's welder: the user's optional override, else the rod's default welder::welder<rod>
 Cwelder::detail::module_welder< Default, First, Rest... >
 Cwelder::rods::luacats::module_writerA module handle: the shared document plus this (sub)module's dotted table path
 Cwelder::diag::no_matching_virtual_slotThrown by virtual_slot (<welder/rods/python/trampoline.hpp>, reached through WELDER_PY_OVERRIDE_AS) when no overridable virtual of the class matches the requested name and function type
 Cwelder::naming::noneThe identity style: bind every C++ identifier unchanged
 Cwelder::rods::python::numpy_styleNumPy-style docstring assembly (numpydoc)
 Cwelder::detail::only_specThe stored form of an only mark: the complete set of languages a member may bind for — implicitly, not for any other
 Cwelder::detail::param_docOne function parameter's documentation: its identifier (nullptr if unnamed) and its doc text (nullptr if undocumented)
 Cwelder::detail::policy_specThe stored form of a policy annotation
 CResolution
 Cwelder::detail::scoped_registration< Resolution, Scope >The scope-aware registration oracle: Resolution widened with the member-alias registrations of one class
 Cwelder::detail::return_doc_spec< N >The stored form of a returns annotation: a function's return-value doc
 Cwelder::detail::return_policy_specThe stored form of a return_policy annotation: a return-value policy, optionally scoped to some languages
 Cwelder::rods::luabridge::rodThe LuaBridge3 rod: a stateless policy type satisfying welder::rod
 Cwelder::rods::luacats::rodThe LuaCATS stub rod: a stateless policy satisfying welder::rod that emits text instead of registering a live module
 Cwelder::rods::nanobind::rod< DocStyle >The nanobind rod: a stateless policy type satisfying welder::rod
 Cwelder::rods::pybind11::rod< DocStyle >The pybind11 rod: a stateless policy type satisfying welder::rod
 Cwelder::rods::sol2::rodThe sol2 rod: a stateless policy type satisfying welder::rod
 Cwelder::rods::trampolines::rodThe trampoline-generator rod: a stateless welder::rod that, instead of registering a live module, appends a compilable trampoline struct (plus its trampoline_for registration) for every welded virtual type it visits
 Cwelder::rods::python::scanned_trampolineThe outcome of scanning a base's namespace for its trampoline-annotated subclass
 Cwelder::rods::luabridge::rod::sessionPer-module session — unused: LuaBridge3 registers namespace variables as live properties eagerly (no deferred batch is needed, unlike sol2's live- variable proxy), so this is empty and open_module/close_module are no-ops
 Cwelder::rods::luacats::rod::sessionNo deferred module state
 Cwelder::rods::sol2::rod::sessionPer-module session: the deferred state for live namespace variables
 Cwelder::rods::trampolines::rod::sessionNo deferred module state
 Cwelder::rods::python::sphinx_styleSphinx-style docstring assembly (reStructuredText field lists)
 Cwelder::diag::stale_hook_signatureThrown by member_access_admitted (<welder/bind_traits.hpp>) when a resolution still declares its optional protected_participates hook under the superseded two-argument signature — which would otherwise be silently ignored (the detection is a requires probe)
 Cwelder::rods::luacats::table_declA module/submodule table to declare (prefix = {}), with its optional doc
 Cwelder::detail::tparam_docOne documented template parameter of an entity: the parameter's name (as spelled in the tparam annotation) and its doc text
 Cwelder::detail::tparam_spec< N, M >The stored form of a tparam annotation: one template parameter's doc
 Cwelder::rods::python::trampoline_specThe stored form of a trampoline mark (a plain tag — it carries no state)
 Cwelder::detail::trust_bindable_specThe stored form of a trust_bindable member mark
 Cwelder::naming::uniform< Kind >A single-convention style: reshape every kind to convention Kind, whatever the source spelling
 Cwelder::naming::uniform< case_kind::snake >
 Cwelder::rods::python::pep8PEP 8 naming: CapWords (PascalCase) for classes and enum types, snake_case for everything callable or data — methods, static methods, free functions, data members (properties), namespace variables — and submodules
 Cwelder::detail::weld_as_spec< N >The stored form of a weld_as annotation: a forced target-language name
 Cwelder::detail::weld_protected_specThe stored form of a policy::weld_protected annotation: the languages a type's protected members are admitted for
 Cwelder::detail::weld_specThe stored form of a weld annotation: the mask of target languages
 Cwelder::welded_registrationThe default registration oracle of the bindability gate: a program-defined class/enum type counts as registered iff it is welded for the language
 Cwelder::welder< B, Style, Carriage >Welder's binding entry point, parameterized on a rod
 Cwelder::detail::wrapper_specOne row of the element-wise STL-wrapper table