// using System.Text.Json;
// using ArcaneLibs.Extensions;
// using LibMatrix.Interfaces.Services;
//
// namespace LibMatrix.Utilities.Bot;
//
// public class FileStorageProvider : IStorageProvider {
// public string TargetPath { get; }
//
// ///
// /// Creates a new instance of .
// ///
// ///
// public FileStorageProvider(string targetPath) {
// Console.WriteLine($"Initialised FileStorageProvider with path {targetPath}");
// TargetPath = targetPath;
// if (!Directory.Exists(targetPath)) Directory.CreateDirectory(targetPath);
// }
//
// public async Task SaveObjectAsync(string key, T value) => await File.WriteAllTextAsync(Path.Join(TargetPath, key), value?.ToJson());
//
// public async Task LoadObjectAsync(string key) => JsonSerializer.Deserialize(await File.ReadAllTextAsync(Path.Join(TargetPath, key)));
//
// public Task ObjectExistsAsync(string key) => Task.FromResult(File.Exists(Path.Join(TargetPath, key)));
//
// public Task> GetAllKeysAsync() => Task.FromResult(Directory.GetFiles(TargetPath).Select(Path.GetFileName).ToList());
//
// public Task DeleteObjectAsync(string key) {
// File.Delete(Path.Join(TargetPath, key));
// return Task.CompletedTask;
// }
// }