diff options
author | Vika <vika@fireburn.ru> | 2024-08-28 15:01:57 +0300 |
---|---|---|
committer | Vika <vika@fireburn.ru> | 2024-08-28 15:04:17 +0300 |
commit | 4f1fe5404c954c85f3bc2379c7ae130b57ea5e73 (patch) | |
tree | 9b36f884ce23849ac9fd1ebd03d1e394d05b976c /src/database/file | |
parent | e03ff3151878851af954aa2e9a17e7578873bbae (diff) | |
download | kittybox-4f1fe5404c954c85f3bc2379c7ae130b57ea5e73.tar.zst |
Introduce `Storage::update_with`
This function takes a closure that modifies the post. This could be useful in maintenance utilities that scan and fixup posts. For now this isn't used anywhere within Kittybox, but once all backends implement this correctly, this could replace `Storage::update_post` calls. For supporting backends, `Storage::update_post` is implemented in terms of `Storage::update_with`.
Diffstat (limited to 'src/database/file')
-rw-r--r-- | src/database/file/mod.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/database/file/mod.rs b/src/database/file/mod.rs index cf7380f..6343f1f 100644 --- a/src/database/file/mod.rs +++ b/src/database/file/mod.rs @@ -484,6 +484,13 @@ impl Storage for FileStorage { Ok(()) } + #[tracing::instrument(skip(self, f), fields(f = std::any::type_name::<F>()))] + async fn update_with<F: FnOnce(&mut serde_json::Value) + Send>( + &self, url: &str, f: F + ) -> Result<(serde_json::Value, serde_json::Value)> { + todo!("update_with is not yet implemented due to special requirements of the file backend") + } + #[tracing::instrument(skip(self))] async fn get_channels(&self, user: &url::Url) -> Result<Vec<super::MicropubChannel>> { let mut path = relative_path::RelativePathBuf::new(); |