using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace GFramework.Game.Abstractions.setting;
///
/// 设置持久化接口
/// 定义了设置数据的异步加载、保存、检查存在性和删除操作
///
public interface ISettingsPersistence
{
///
/// 异步加载指定类型的设置数据
///
Task LoadAsync() where T : class, ISettingsData, new();
///
/// 异步保存指定的设置数据
///
Task SaveAsync(T section) where T : class, ISettingsData;
///
/// 异步检查指定类型的设置数据是否存在
///
Task ExistsAsync() where T : class, ISettingsData;
///
/// 异步删除指定类型的设置数据
///
Task DeleteAsync() where T : class, ISettingsData;
///
/// 保存所有设置数据
///
Task SaveAllAsync(IEnumerable allData);
///
/// 加载所有已知类型的设置数据
///
Task> LoadAllAsync(IEnumerable knownTypes);
}