module uim.oop.datatypes..string; import uim.oop; class DOOPString : DOOPSimpleObject { string _value; this() { super(); } this(string newValue) { super(); _value = newValue; } this(T)(T newValue) { super(); _value = to!string(newValue); } O opAssign(this O)(string newValue) { _value = newValue; return cast(O)this; } O opEqual(this O)(string aValue) { return (_value == aValue); return cast(O)this; } O opEqual(this O)(DOOPString aValue) { return (aValue == _value); return cast(O)this; } O opCall(this O)(string[] values...) { foreach(v; values) _value ~= v; return cast(O)this; } O opCall(this O)(string[] values) { foreach(v; values) _value ~= v; return cast(O)this; } O opCall(this O, T)(T newValue) { _value ~= to!string(newValue); return cast(O)this; } bool empty() { return (_value.length == 0); } O empty(this O)(bool setEmpty) { if (setEmpty) _value = ""; return cast(O)this; } unittest { /// TODO } override string toString() { return _value; } } auto OOPString() { return new DOOPString; } unittest { /// TODO }