module uim.json.schema.properties;

import uim.json;

class JsonProperties { // : Map!(string, SchemaProperty) { 
	this() {}

	string[] keys;
	string[string] values;

	string opIndex(string name) {
		if (name in values) return values[name]; return null;
	}
	O opIndexAssign(this O)(string value, string name) {
		if (name in values) values[name] = value; 
		else {
			keys ~= name;
			values[name] = value;
		}
		return cast(O)this;
	}
	O remove(this O)(string key) {
		if (name in values) {
			values.remove(key);
			string[] newKeys;
			foreach(k; keys) if (k == key) newKeys ~= k;
			keys = newKeys;
		}
		return cast(O)this;
	}

//	string toJSN() {
//		string[] props;
//		foreach(k; keys) {
//
//		}
//	}
}