BaseModule

Common functionality for modules.

Support indentation. Children structure. Recursive rendering of content + children. Line separation independent of accidental sep().

TODO refactor, lessen the coupling by moving functionality to pure, free functions. TODO refactor, use a GC-less allocator like Array. TODO refactor, toString to support the range versions with a sink.

Constructors

this
this()

Empty with defaults.

this
this(int indent_width)

Module with a indent different fro default

Members

Functions

append
void append(BaseElement e)

Insert element at the back.

clearChildren
void clearChildren()

Remove all children and clear line separation.

indent
string indent(string s, int parent_level, int level)

Render content with an indentation that takes the parent in consideration.

prepend
void prepend(BaseElement e)

Insert element at the front.

reset
auto reset()

Clear the node of childrens.

sep
void sep(int count = 1)

Separate with at most count empty lines.

setIndentation
void setIndentation(int ind)

Sets the width of the indentation

suppressIndent
void suppressIndent(int levels)

Set indent suppression from this point and all children.

suppressThisIndent
void suppressThisIndent(int levels)

Suppress indentation by also affecting the level propagated from the parent.

Inherited Members

From BaseElement

render
string render()

Recursively render the modules.

renderIndent
string renderIndent(int parent_level, int level)

Query the module for an indented string representation.

renderRecursive
string renderRecursive(int parent_level, int level)

Query the module for a concatenated string of the childrens representation.

renderPostRecursive
string renderPostRecursive(int parent_level, int level)

Query the module for post recursive data.

Meta