aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/ao_object_setter.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/ao_object_setter.d')
-rw-r--r--src/sdp/ao_object_setter.d124
1 files changed, 124 insertions, 0 deletions
diff --git a/src/sdp/ao_object_setter.d b/src/sdp/ao_object_setter.d
new file mode 100644
index 0000000..4492e8a
--- /dev/null
+++ b/src/sdp/ao_object_setter.d
@@ -0,0 +1,124 @@
+/+
+ object setter
+ ao_object_setter.d
++/
+template ObjectSetter() {
+ /+ structs +/
+ struct HeadingAttrib {
+ int lev = 9; // use of enum should make this redundant, remove
+ int lev_markup_number = 9;
+ int lev_collapsed_number = 9;
+ }
+ struct ParaAttrib {
+ int indent_first = 0;
+ int indent_second = 0;
+ bool bullet = false;
+ }
+ struct BlockAttrib {
+ }
+ struct Comment {
+ // no .attrib and no .obj_cite_number
+ }
+ struct Node {
+ int ocn = 0;
+ int parent_lev = 0;
+ int parent_ocn = 0;
+ string node = "";
+ }
+ struct ObjComposite {
+ // size_t id;
+ string use = "";
+ string of = "";
+ string is_a = "";
+ string object = "";
+ string obj_cite_number = ""; // not used for calculations? output only? else int
+ HeadingAttrib heading_attrib;
+ ParaAttrib para_attrib;
+ BlockAttrib block_attrib;
+ Node node_structure;
+ }
+ struct ObjCompositeArr {
+ ObjComposite[] oca;
+ }
+
+ /+ structs setter +/
+ struct ObjectAbstractSet {
+ import std.conv : to;
+ auto contents_comment(in string object) {
+ ObjComposite object_set;
+ object_set.use = "comment";
+ object_set.of = "comment";
+ object_set.is_a = "comment";
+ object_set.object = object;
+ return object_set;
+ }
+ auto contents_heading(
+ in string object,
+ in string attrib,
+ in int obj_cite_number,
+ in int lev_markup_number,
+ in int lev_collapsed_number,
+ ) {
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "heading";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.heading_attrib.lev_markup_number = lev_markup_number;
+ object_set.heading_attrib.lev_collapsed_number = lev_collapsed_number;
+ // object_set.node_structure.node = node;
+ return object_set;
+ }
+ auto contents_para(
+ in string is_a,
+ in string object,
+ in string attrib,
+ in int obj_cite_number,
+ in string[string] indent,
+ in bool bullet
+ ) {
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "para";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.para_attrib.indent_first = 0; // indent["first"];
+ object_set.para_attrib.indent_second = 0; // indent["second"];
+ object_set.para_attrib.bullet = false;
+ // object_set.node_structure.node = node;
+ return object_set;
+ }
+ auto contents_block(
+ in string type,
+ in string object,
+ in string attrib,
+ in int obj_cite_number
+ ) {
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ // object_set.node_structure.node = node;
+ return object_set;
+ }
+ auto contents_block_obj_cite_number_string(
+ in string type,
+ in string object,
+ in string obj_cite_number,
+ in string node
+ ) {
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = obj_cite_number;
+ object_set.node_structure.node = node;
+ return object_set;
+ }
+ }
+}