#+TITLE: sdp object setter #+AUTHOR: Ralph Amissah #+EMAIL: ralph.amissah@gmail.com #+STARTUP: indent #+LANGUAGE: en #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc #+OPTIONS: author:nil email:nil creator:nil timestamp:nil #+PROPERTY: header-args :padline no :exports code :noweb yes #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+FILETAGS: :sdp:rel:ao: #+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n) * object setter :object:set: [[./sdp.org][sdp]] [[./][org/]] ** struct :struct: #+name: ao_object_setter #+BEGIN_SRC d string[string] contents_comment(in string object) { string[string] object_set; object_set["use"] = "comment"; object_set["of"] = "comment"; object_set["is"] = "comment"; object_set["obj"] = object; return object_set; } #+END_SRC ** heading :heading: #+name: ao_object_setter #+BEGIN_SRC d string[string] contents_heading( in int type, in string object, in string attrib, in int ocn, in string lev, in string lvn, in string lcn, ) { string[string] object_set; object_set["use"] = "content"; object_set["of"] = "para"; object_set["is"] = "heading"; object_set["type"] = to!string(type); object_set["obj"] = object; object_set["ocn"] = (ocn==0) ? "" : to!string(ocn); object_set["lev"] = to!string(lev); object_set["lvn"] = to!string(lvn); object_set["lcn"] = to!string(lcn); object_set["attrib"] = attrib; return object_set; } #+END_SRC ** para :para: #+name: ao_object_setter #+BEGIN_SRC d string[string] contents_para( in string type, in string object, in string attrib, in int ocn, in string indent_first, in string indent_second, in bool bullet ) { string[string] object_set; object_set["use"] = "content"; object_set["of"] = "para"; object_set["is"] = type; object_set["obj"] = object; object_set["ocn"] = (ocn==0) ? "" : to!string(ocn); object_set["indent_first"] = indent_first; object_set["indent_second"] = indent_second; object_set["bullet"] = to!string(bullet); object_set["attrib"] = attrib; return object_set; } #+END_SRC ** block :block: #+name: ao_object_setter #+BEGIN_SRC d string[string] contents_block( in string type, in string object, in string attrib, in int ocn ) { string[string] object_set; object_set["use"] = "content"; object_set["of"] = "block"; object_set["is"] = type; object_set["obj"] = object; object_set["ocn"] = (ocn==0) ? "" : to!string(ocn); object_set["attrib"] = attrib; return object_set; } #+END_SRC ** block ocn string :block: #+name: ao_object_setter #+BEGIN_SRC d string[string] contents_block_ocn_string( in string type, in string object, in string ocn, in string node ) { string[string] object_set; object_set["use"] = "content"; object_set["of"] = "block"; object_set["is"] = type; object_set["obj"] = object; object_set["ocn"] = ocn; object_set["node"] = node; return object_set; } #+END_SRC * tangles :tangle: ** code structure: :ao_object_setter.d: #+name: tangle_ao_object_setter #+BEGIN_SRC d :tangle ../lib/sdp/ao_object_setter.d /* object setter ao_object_setter.d */ mixin template ObjectSetters() { class ObjectAbstractSet { import std.conv : to; <> } } #+END_SRC