You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
C#
60 lines
2.1 KiB
C#
namespace UnityEditor.SettingsManagement
|
|
{
|
|
/// <summary>
|
|
/// A settings repository is responsible for implementing the saving and loading of values.
|
|
/// </summary>
|
|
public interface ISettingsRepository
|
|
{
|
|
/// <value>
|
|
/// What SettingsScope this repository applies to.
|
|
/// </value>
|
|
SettingsScope scope { get; }
|
|
|
|
/// <summary>
|
|
/// A name to identify this repository.
|
|
/// </summary>
|
|
string name { get; }
|
|
|
|
/// <value>
|
|
/// File path to the serialized settings data.
|
|
/// </value>
|
|
string path { get; }
|
|
|
|
/// <summary>
|
|
/// Save all settings to their serialized state.
|
|
/// </summary>
|
|
void Save();
|
|
|
|
/// <summary>
|
|
/// Set a value for key of type T.
|
|
/// </summary>
|
|
/// <param name="key">The settings key.</param>
|
|
/// <param name="value">The value to set. Must be serializable.</param>
|
|
/// <typeparam name="T">Type of value.</typeparam>
|
|
void Set<T>(string key, T value);
|
|
|
|
/// <summary>
|
|
/// Get a value with key of type T, or return the fallback value if no matching key is found.
|
|
/// </summary>
|
|
/// <param name="key">The settings key.</param>
|
|
/// <param name="fallback">If no key with a value of type T is found, this value is returned.</param>
|
|
/// <typeparam name="T">Type of value to search for.</typeparam>
|
|
T Get<T>(string key, T fallback = default(T));
|
|
|
|
/// <summary>
|
|
/// Does the repository contain a setting with key and type.
|
|
/// </summary>
|
|
/// <param name="key">The settings key.</param>
|
|
/// <typeparam name="T">The type of value to search for.</typeparam>
|
|
/// <returns>True if a setting matching both key and type is found, false if no entry is found.</returns>
|
|
bool ContainsKey<T>(string key);
|
|
|
|
/// <summary>
|
|
/// Remove a key value pair from the settings repository.
|
|
/// </summary>
|
|
/// <param name="key"></param>
|
|
/// <typeparam name="T"></typeparam>
|
|
void Remove<T>(string key);
|
|
}
|
|
}
|