Sen API
Sen Libraries
Loading...
Searching...
No Matches
Code Generation library

Code generators that emit source artefacts from Sen type sets. More...

Classes

struct  sen::gen::CppOptions
 Options controlling how CppGenerator::generate renders one type set. More...
struct  sen::gen::CppExportsOptions
 Options for CppGenerator::generateExports. More...
class  sen::gen::CppGenerator
 Renders C++ sources out of Sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...
struct  sen::gen::PackageOptions
 Options for JsonGenerator::generatePackage. More...
struct  sen::gen::ComponentOptions
 Options for JsonGenerator::generateComponent. More...
class  sen::gen::JsonGenerator
 Renders JSON-Schema descriptions of sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...
class  sen::gen::MkDocsGenerator
 Renders an MkDocs-compatible markdown document out of sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...
class  sen::gen::PlantUMLGenerator
 Renders PlantUML class diagrams out of sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...
class  sen::gen::PythonGenerator
 Renders Python dataclasses out of sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...
class  sen::gen::TypeScriptGenerator
 Renders TypeScript modules out of sen type sets. Stateful (caches the loaded inja templates), so prefer reusing one instance across calls when possible. More...

Enumerations

enum class  sen::gen::PlantUMLGenerationMode { sen::gen::PlantUMLGenerationMode::all , sen::gen::PlantUMLGenerationMode::onlyClasses , sen::gen::PlantUMLGenerationMode::onlyBasicTypes }
 Selects which subset of the type set ends up in the rendered diagram. More...
enum class  sen::gen::PlantUMLEnumMode { sen::gen::PlantUMLEnumMode::all , sen::gen::PlantUMLEnumMode::noEnumerators }
 Controls whether enum types contribute their enumerators to the rendered diagram. More...

Detailed Description

Code generators that emit source artefacts from Sen type sets.


Class Documentation

◆ sen::gen::CppOptions

struct sen::gen::CppOptions

Options controlling how CppGenerator::generate renders one type set.

Class Members
bool recursive = false When true, the generator also renders sources for every transitively imported type set found in TypeSet::importedSets.
bool publicSymbols = false When true, generated classes use public C++ symbols (rather than the default translation-unit-private visibility).
string basePath Optional base path embedded into the rendered #include lines so generated headers resolve correctly under the consumer's include layout.

◆ sen::gen::CppExportsOptions

struct sen::gen::CppExportsOptions
Class Members
string packageName The Sen package name. Becomes the hashed package id embedded into the file.
vector< string > stlFiles Names of every STL file participating in the package.
vector< string > packageDependencies Names of every package this one depends on. Each becomes a hashed package id in the rendered file's dependency block.
vector< string > userImplementedClasses Qualified names of types the user implements in this package. Each is materialised as a registration entry pointing at its make / getType symbols.

◆ sen::gen::PackageOptions

struct sen::gen::PackageOptions
Class Members
string schemaName Becomes the schemaName field in the rendered JSON. Caller is expected to derive it from the desired output file name (typically the file stem without extension).
vector< string > classes Qualified names of classes implemented by the user. Each is materialised as a concrete class deriving from the matching abstract class in the type set.

◆ sen::gen::ComponentOptions

struct sen::gen::ComponentOptions
Class Members
string schemaName Becomes the schemaName field in the rendered JSON.
string componentName Becomes the component field in the rendered JSON.

Enumeration Type Documentation

◆ PlantUMLGenerationMode

Selects which subset of the type set ends up in the rendered diagram.

Enumerator
all 
onlyClasses 
onlyBasicTypes 

◆ PlantUMLEnumMode

enum class sen::gen::PlantUMLEnumMode
strong

Controls whether enum types contribute their enumerators to the rendered diagram.

Enumerator
all 
noEnumerators