diff --git a/source/poodinis/config/dictionary.d b/source/poodinis/config/dictionary.d new file mode 100644 index 0000000..1f926bd --- /dev/null +++ b/source/poodinis/config/dictionary.d @@ -0,0 +1,54 @@ +module poodinis.config.dictionary; + +interface ConfigNode { +} + +class NodeValue : ConfigNode { + string value; + + this() { + } + + this(string value) { + this.value = value; + } +} + +class NodeObject : ConfigNode { + ConfigNode[string] children; + + this() { + } + + this(ConfigNode[string] children) { + this.children = children; + } +} + +class NodeArray : ConfigNode { + ConfigNode[] children; + + this() { + } + + this(ConfigNode[] children...) { + this.children = children; + } +} + +class ConfigDictionary { + ConfigNode rootNode; +} + +version (unittest) { + @("Dictionary creation") + unittest { + auto root = new NodeObject([ + "english": new NodeArray([new NodeValue("one"), new NodeValue("two")]), + "spanish": new NodeArray(new NodeValue("uno"), new NodeValue("dos")) + ]); + + auto dictionary = new ConfigDictionary(); + dictionary.rootNode = root; + } +} diff --git a/source/poodinis/config/package.d b/source/poodinis/config/package.d index b5cea75..3a31494 100644 --- a/source/poodinis/config/package.d +++ b/source/poodinis/config/package.d @@ -8,3 +8,5 @@ */ module poodinis.config; + +public import poodinis.config.dictionary;