using System.Collections.Generic; namespace RecrownedGTK.Persistence { /// <summary> /// Serializable preferences. /// </summary> public struct PreferencesInfo { /// <summary> /// Array of preferences. /// </summary> public PreferenceInfo[] preferences; /// <summary> /// Sets the serializable preference with a string string value pair dictionary. /// </summary> /// <param name="preferences">A dictionary of string and string pair.</param> public void SetPreferences(Dictionary<string, string> preferences) { this.preferences = new PreferenceInfo[preferences.Count]; int pairIndex = 0; foreach (KeyValuePair<string, string> item in preferences) { this.preferences[pairIndex] = new PreferenceInfo(item.Key, item.Value); pairIndex++; } } /// <summary> /// Return a dictionary containing a string string key value pair. /// </summary> /// <returns>Dictionary with a string value and string key representing a preference option.</returns> public Dictionary<string, string> GetPreferences() { Dictionary<string, string> res = new Dictionary<string, string>(); for (int prefID = 0; prefID < preferences.Length; prefID++) { res.Add(preferences[prefID].key, preferences[prefID].value); } return res; } /// <summary> /// Serializable preference option. /// </summary> public struct PreferenceInfo { /// <summary> /// The key and value of the option in the preferences. /// </summary> public string key, value; public PreferenceInfo(string key, string value) { this.key = key; this.value = value; } } } }