namespace LibMatrix.Interfaces.Services; public interface IStorageProvider { // save all children of a type with reflection public Task SaveAllChildrenAsync(string key, T value) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement SaveAllChildren(key, value)!"); throw new NotImplementedException(); } // load all children of a type with reflection public Task LoadAllChildrenAsync(string key) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement LoadAllChildren(key)!"); throw new NotImplementedException(); } public Task SaveObjectAsync(string key, T value) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement SaveObject(key, value)!"); throw new NotImplementedException(); } // load public Task LoadObjectAsync(string key) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement LoadObject(key)!"); throw new NotImplementedException(); } // check if exists public Task ObjectExistsAsync(string key) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement ObjectExists(key)!"); throw new NotImplementedException(); } // get all keys public Task> GetAllKeysAsync() { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement GetAllKeys()!"); throw new NotImplementedException(); } // delete public Task DeleteObjectAsync(string key) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement DeleteObject(key)!"); throw new NotImplementedException(); } // save stream public Task SaveStreamAsync(string key, Stream stream) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement SaveStream(key, stream)!"); throw new NotImplementedException(); } // load stream public Task LoadStreamAsync(string key) { Console.WriteLine($"StorageProvider<{GetType().Name}> does not implement LoadStream(key)!"); throw new NotImplementedException(); } }