Sen API
Sen Libraries
Loading...
Searching...
No Matches
sen::gen::detail Namespace Reference

Namespaces

namespace  impl

Classes

struct  CppTemplateSet
 A template for each supported user type. More...
struct  JsonTemplateSet
 A template for each supported user type. More...
struct  MkDocsTemplates
 A template for each supported user type. More...
class  Node
struct  PlantUmlTemplateSet
 A template for each supported user type. More...
struct  PythonTemplateSet
 A template for each supported user type. More...
struct  TemplateVisitorResult
struct  TypeGroups
struct  TypeScriptTemplateSet
 One template per supported user type, plus the file shell. More...
class  TypeStorage

Functions

void configureEnv (inja::Environment &env)
 Registers inja helper callbacks used by generator templates.
std::vector< std::string > tokenize (const std::string &str, const char delim)
 Splits a string into substrings by a delimiter, skipping empty results.
std::string prepend (const std::string &prefix, const std::string str)
 Appends a prefix to the beginning of a given string.
std::string append (const std::string &lhs, const std::string rhs)
 Appends a suffix to the end of a given string.
std::string capitalize (const std::string &str)
 Transform a string to uppercase.
std::string capitalize (std::string_view str)
 Transform a string_view to uppercase.
std::string computeCppNamespace (const std::vector< std::string > &package)
 Computes C++ namespace from a string package.
std::string computeCppNamespace (const sen::lang::TypeSet &set)
 Computes C++ namespace from a type set.
std::string computeCppNamespace (const sen::CustomType &type)
 Computes C++ namespace from a custom type.
std::vector< const sen::lang::TypeSet * > collectAllTypeSets (const sen::lang::TypeSetContext &typeSets)
 Walks the given context's type sets and their imports depth-first, returning unique sets in insertion order. Insertion order (rather than pointer order) keeps generator output stable across builds for generators that emit a single consolidated file or rely on iteration order for dependency layering.
template<typename T>
std::string intToHex (T i)
template<typename T>
std::string intToHex2 (T i)
CppTemplateSet makeCppBaseHeaderTemplates (inja::Environment &env) noexcept
 Templates for the type header.
CppTemplateSet makeCppImplTemplates (inja::Environment &env) noexcept
 Templates for the implementation source file.
inja::Template makeCppPackageExportTemplate (inja::Environment &env)
 The template for generating stl package exports.
inja::Template makeCppBaseHeaderFileTemplate (inja::Environment &env)
 Returns the template of the Base Header File.
inja::Template makeCppImplFileTemplate (inja::Environment &env)
 Returns the template of the Implementation File.
JsonTemplateSet makeJsonTypeTemplates (inja::Environment &env) noexcept
 Templates for the type header.
MkDocsTemplates makeMkDocsTemplates (inja::Environment &env)
 Templates for the type header.
PlantUmlTemplateSet makePlantumlTypeTemplates (inja::Environment &env)
PythonTemplateSet makePythonTypeTemplates (inja::Environment &env)
TypeScriptTemplateSet makeTypeScriptTypeTemplates (inja::Environment &env)
inja::Template makeTypeScriptFileTemplate (inja::Environment &env)
 File-level template that wraps per-type rendered output with imports + header.

Class Documentation

◆ sen::gen::detail::CppTemplateSet

struct sen::gen::detail::CppTemplateSet

A template for each supported user type.

Class Members
Template structType
Template enumType
Template variantType
Template sequenceType
Template aliasType
Template optionalType
Template quantityType
Template classType

◆ sen::gen::detail::JsonTemplateSet

struct sen::gen::detail::JsonTemplateSet

A template for each supported user type.

Class Members
Template structType
Template enumType
Template variantType
Template sequenceType
Template aliasType
Template optionalType
Template quantityType
Template classType
Template schemaFile

◆ sen::gen::detail::MkDocsTemplates

struct sen::gen::detail::MkDocsTemplates

A template for each supported user type.

Class Members
Template aliasTemplate
Template classTemplate
Template classDiagram
Template enumTemplate
Template quantityTemplate
Template sequenceTemplate
Template structTemplate
Template variantTemplate
Template optionalTemplate

◆ sen::gen::detail::PlantUmlTemplateSet

struct sen::gen::detail::PlantUmlTemplateSet

A template for each supported user type.

Class Members
Template structType
Template enumType
Template variantType
Template classType

◆ sen::gen::detail::PythonTemplateSet

struct sen::gen::detail::PythonTemplateSet

A template for each supported user type.

Class Members
Template structType
Template enumType
Template variantType
Template optionalType
Template classType
Template sequenceType
Template aliasType
Template quantityType

◆ sen::gen::detail::TemplateVisitorResult

struct sen::gen::detail::TemplateVisitorResult
Class Members
string enumerationsDoc
string structuresDoc
string variantsDoc
string sequencesDoc
string quantitiesDoc
string aliasesDoc
string classesDoc
string optionalsDoc
vector< Node > rootClasses
TypeGroups groups

◆ sen::gen::detail::TypeGroups

struct sen::gen::detail::TypeGroups
Class Members
vector< const Type * > classTypes
vector< const Type * > enumTypes
vector< const Type * > structTypes
vector< const Type * > sequenceTypes
vector< const Type * > quantityTypes
vector< const Type * > aliasTypes
vector< const Type * > variantTypes
vector< const Type * > optionalTypes

◆ sen::gen::detail::TypeScriptTemplateSet

struct sen::gen::detail::TypeScriptTemplateSet

One template per supported user type, plus the file shell.

Class Members
Template structTemplate
Template enumTemplate
Template variantTemplate
Template optionalTemplate
Template classTemplate
Template sequenceTemplate
Template aliasTemplate
Template quantityTemplate

Function Documentation

◆ configureEnv()

void sen::gen::detail::configureEnv ( inja::Environment & env)

Registers inja helper callbacks used by generator templates.

◆ tokenize()

std::vector< std::string > sen::gen::detail::tokenize ( const std::string & str,
const char delim )
nodiscard

Splits a string into substrings by a delimiter, skipping empty results.

◆ prepend()

std::string sen::gen::detail::prepend ( const std::string & prefix,
const std::string str )
nodiscard

Appends a prefix to the beginning of a given string.

◆ append()

std::string sen::gen::detail::append ( const std::string & lhs,
const std::string rhs )
nodiscard

Appends a suffix to the end of a given string.

◆ capitalize() [1/2]

std::string sen::gen::detail::capitalize ( const std::string & str)
nodiscard

Transform a string to uppercase.

◆ capitalize() [2/2]

std::string sen::gen::detail::capitalize ( std::string_view str)
nodiscard

Transform a string_view to uppercase.

◆ computeCppNamespace() [1/3]

std::string sen::gen::detail::computeCppNamespace ( const std::vector< std::string > & package)
nodiscard

Computes C++ namespace from a string package.

◆ computeCppNamespace() [2/3]

std::string sen::gen::detail::computeCppNamespace ( const sen::lang::TypeSet & set)
nodiscard

Computes C++ namespace from a type set.

◆ computeCppNamespace() [3/3]

std::string sen::gen::detail::computeCppNamespace ( const sen::CustomType & type)
nodiscard

Computes C++ namespace from a custom type.

◆ collectAllTypeSets()

std::vector< const sen::lang::TypeSet * > sen::gen::detail::collectAllTypeSets ( const sen::lang::TypeSetContext & typeSets)
nodiscard

Walks the given context's type sets and their imports depth-first, returning unique sets in insertion order. Insertion order (rather than pointer order) keeps generator output stable across builds for generators that emit a single consolidated file or rely on iteration order for dependency layering.

◆ intToHex()

template<typename T>
std::string sen::gen::detail::intToHex ( T i)
nodiscard

◆ intToHex2()

template<typename T>
std::string sen::gen::detail::intToHex2 ( T i)
nodiscard

◆ makeCppBaseHeaderTemplates()

CppTemplateSet sen::gen::detail::makeCppBaseHeaderTemplates ( inja::Environment & env)
noexcept

Templates for the type header.

◆ makeCppImplTemplates()

CppTemplateSet sen::gen::detail::makeCppImplTemplates ( inja::Environment & env)
noexcept

Templates for the implementation source file.

◆ makeCppPackageExportTemplate()

inja::Template sen::gen::detail::makeCppPackageExportTemplate ( inja::Environment & env)

The template for generating stl package exports.

◆ makeCppBaseHeaderFileTemplate()

inja::Template sen::gen::detail::makeCppBaseHeaderFileTemplate ( inja::Environment & env)

Returns the template of the Base Header File.

◆ makeCppImplFileTemplate()

inja::Template sen::gen::detail::makeCppImplFileTemplate ( inja::Environment & env)

Returns the template of the Implementation File.

◆ makeJsonTypeTemplates()

JsonTemplateSet sen::gen::detail::makeJsonTypeTemplates ( inja::Environment & env)
noexcept

Templates for the type header.

◆ makeMkDocsTemplates()

MkDocsTemplates sen::gen::detail::makeMkDocsTemplates ( inja::Environment & env)

Templates for the type header.

◆ makePlantumlTypeTemplates()

PlantUmlTemplateSet sen::gen::detail::makePlantumlTypeTemplates ( inja::Environment & env)

◆ makePythonTypeTemplates()

PythonTemplateSet sen::gen::detail::makePythonTypeTemplates ( inja::Environment & env)

◆ makeTypeScriptTypeTemplates()

TypeScriptTemplateSet sen::gen::detail::makeTypeScriptTypeTemplates ( inja::Environment & env)

◆ makeTypeScriptFileTemplate()

inja::Template sen::gen::detail::makeTypeScriptFileTemplate ( inja::Environment & env)

File-level template that wraps per-type rendered output with imports + header.