/** * Dictionary provides key-value storage. * * Both keys and values are strings. * * @note keys are case-sensitive. */ class Dictionary { native static Dictionary Create(); native void Insert(String key, String value); native void Remove(String key); /** * Returns the value for the specified key. */ native String At(String key) const; /** * Deserializes a dictionary from a string. * * @param s serialized string, must be either empty or returned from ToString(). */ native static Dictionary FromString(String s); /** * Serializes a dictionary to a string. */ native String ToString() const; } /** * Provides iterating over a Dictionary. * * Order is not specified. * * DictionaryIterator is not serializable. To make DictionaryIterator a class * member, use `transient` keyword. */ class DictionaryIterator { native static DictionaryIterator Create(Dictionary dict); /** * Returns false if there are no more entries in the dictionary. * Otherwise, returns true. * * While it returns true, get key and value for the current entry * with Key() and Value() functions. */ native bool Next(); /** * Returns the key for the current dictionary entry. * Do not call this function before calling Next(). */ native String Key() const; /** * Returns the value for the current dictionary entry. * Do not call this function before calling Next(). */ native String Value() const; }