|
welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
|
A class handle. More...
#include <welder/rods/lua/luacats/document.hpp>
Public Member Functions | |
| class_writer ()=default | |
| class_writer (const class_writer &)=delete | |
| class_writer & | operator= (const class_writer &)=delete |
| class_writer (class_writer &&o) noexcept | |
| class_writer & | operator= (class_writer &&o) noexcept |
| ~class_writer () | |
Public Attributes | |
| document * | doc {nullptr} |
| std::string * | sink {nullptr} |
| Flush target override; null = doc->body. | |
| std::string | qualified {} |
| Dotted LuaCATS class name. | |
| std::string | cls_doc {} |
| The class doc. | |
| std::string | bases {} |
| Comma-joined base names, or empty. | |
| std::string | fields {} |
| Accumulated ---@field / ---@operator lines. | |
| std::string | methods {} |
| Accumulated function statements. | |
| std::string | trailing {} |
| Nested types' flushed blocks (after methods). | |
| std::vector< func_overload > | ctors {} |
| The .new overloads, grouped on flush. | |
A class handle.
Accumulates the @field/@operator lines (which sit inside the ---@class block) and the method/constructor statements (which follow it), then flushes the assembled block to the document on destruction — the driver has no explicit "finish class" hook, so RAII is the finalizer. Move-only so a moved-from temporary does not double-flush.
Definition at line 342 of file document.hpp.
|
default |
Referenced by class_writer(), class_writer(), operator=(), and operator=().
|
delete |
References class_writer().
|
inlinenoexcept |
Definition at line 361 of file document.hpp.
References class_writer().
|
inline |
Definition at line 375 of file document.hpp.
References bases, cls_doc, ctors, doc, welder::rods::luacats::emit_doc_comment(), fields, methods, qualified, welder::rods::luacats::render_overload_group(), sink, and trailing.
|
inlinenoexcept |
|
delete |
References class_writer().
| std::string welder::rods::luacats::class_writer::bases {} |
Comma-joined base names, or empty.
Definition at line 352 of file document.hpp.
Referenced by welder::rods::luacats::rod::make_class(), welder::rods::luacats::rod::make_nested_class(), operator=(), and ~class_writer().
| std::string welder::rods::luacats::class_writer::cls_doc {} |
The class doc.
Definition at line 351 of file document.hpp.
Referenced by welder::rods::luacats::rod::make_class(), welder::rods::luacats::rod::make_nested_class(), operator=(), and ~class_writer().
| std::vector<func_overload> welder::rods::luacats::class_writer::ctors {} |
The .new overloads, grouped on flush.
Definition at line 356 of file document.hpp.
Referenced by welder::rods::luacats::rod::add_constructors(), operator=(), and ~class_writer().
| document* welder::rods::luacats::class_writer::doc {nullptr} |
Definition at line 343 of file document.hpp.
Referenced by welder::rods::luacats::rod::make_class(), welder::rods::luacats::rod::make_nested_class(), operator=(), and ~class_writer().
| std::string welder::rods::luacats::class_writer::fields {} |
Accumulated ---@field / ---@operator lines.
Definition at line 353 of file document.hpp.
Referenced by welder::rods::luacats::rod::add_field(), welder::rods::luacats::rod::add_operator(), operator=(), and ~class_writer().
| std::string welder::rods::luacats::class_writer::methods {} |
Accumulated function statements.
Definition at line 354 of file document.hpp.
Referenced by welder::rods::luacats::rod::add_method(), welder::rods::luacats::rod::add_static_method(), operator=(), and ~class_writer().
| std::string welder::rods::luacats::class_writer::qualified {} |
Dotted LuaCATS class name.
Definition at line 350 of file document.hpp.
Referenced by welder::rods::luacats::rod::add_constructors(), welder::rods::luacats::rod::add_method(), welder::rods::luacats::rod::add_static_method(), welder::rods::luacats::rod::make_class(), welder::rods::luacats::rod::make_nested_class(), welder::rods::luacats::rod::make_nested_enum(), operator=(), and ~class_writer().
| std::string* welder::rods::luacats::class_writer::sink {nullptr} |
Flush target override; null = doc->body.
A NESTED type's writer flushes into its outer's trailing, so its block lands after the outer's declaration (the stub assigns mod.Outer.Inner = {} only once mod.Outer = {} exists).
Definition at line 344 of file document.hpp.
Referenced by welder::rods::luacats::rod::make_nested_class(), operator=(), and ~class_writer().
| std::string welder::rods::luacats::class_writer::trailing {} |
Nested types' flushed blocks (after methods).
Definition at line 355 of file document.hpp.
Referenced by welder::rods::luacats::rod::make_nested_class(), welder::rods::luacats::rod::make_nested_enum(), operator=(), and ~class_writer().