using System.Threading.Tasks;
namespace GFramework.Game.Abstractions.setting;
///
/// 设置持久化接口
/// 定义了设置数据的异步加载、保存、检查存在性和删除操作
///
public interface ISettingsPersistence
{
///
/// 异步加载指定类型的设置节
///
/// 设置节类型,必须实现ISettingsSection接口并具有无参构造函数
/// 返回加载的设置节实例
Task LoadAsync() where T : class, ISettingsSection, new();
///
/// 异步保存指定的设置节
///
/// 设置节类型,必须实现ISettingsSection接口
/// 要保存的设置节实例
/// 异步操作任务
Task SaveAsync(T section) where T : class, ISettingsSection;
///
/// 异步检查指定类型的设置节是否存在
///
/// 设置节类型,必须实现ISettingsSection接口
/// 如果设置节存在则返回true,否则返回false
Task ExistsAsync() where T : class, ISettingsSection;
///
/// 异步删除指定类型的设置节
///
/// 设置节类型,必须实现ISettingsSection接口
/// 异步操作任务
Task DeleteAsync() where T : class, ISettingsSection;
}