refactor(tvix/castore/directory/redb): borrow in putter

We don't need an owned version of the database, a reference is
sufficient.

Change-Id: I84d10ad39c1db28f4f1dda26514c04418db48a27
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13261
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
This commit is contained in:
Florian Klink 2025-03-13 16:50:42 +01:00 committed by flokli
parent 5618800895
commit 54910b5bd8

View file

@ -165,16 +165,16 @@ impl DirectoryService for RedbDirectoryService {
} }
#[instrument(skip_all)] #[instrument(skip_all)]
fn put_multiple_start(&self) -> Box<dyn DirectoryPutter> { fn put_multiple_start(&self) -> Box<dyn DirectoryPutter + '_> {
Box::new(RedbDirectoryPutter { Box::new(RedbDirectoryPutter {
db: self.db.clone(), db: &self.db,
directory_validator: Some(Default::default()), directory_validator: Some(Default::default()),
}) })
} }
} }
pub struct RedbDirectoryPutter { pub struct RedbDirectoryPutter<'a> {
db: Arc<Database>, db: &'a Database,
/// The directories (inside the directory validator) that we insert later, /// The directories (inside the directory validator) that we insert later,
/// or None, if they were already inserted. /// or None, if they were already inserted.
@ -182,7 +182,7 @@ pub struct RedbDirectoryPutter {
} }
#[async_trait] #[async_trait]
impl DirectoryPutter for RedbDirectoryPutter { impl DirectoryPutter for RedbDirectoryPutter<'_> {
#[instrument(level = "trace", skip_all, fields(directory.digest=%directory.digest()), err)] #[instrument(level = "trace", skip_all, fields(directory.digest=%directory.digest()), err)]
async fn put(&mut self, directory: Directory) -> Result<(), Error> { async fn put(&mut self, directory: Directory) -> Result<(), Error> {
match self.directory_validator { match self.directory_validator {