diff --git a/cli/examples/custom-backend/main.rs b/cli/examples/custom-backend/main.rs index bae68d25c..32547b407 100644 --- a/cli/examples/custom-backend/main.rs +++ b/cli/examples/custom-backend/main.rs @@ -174,7 +174,10 @@ impl Backend for JitBackend { self.inner.write_copy(contents).await } - async fn get_related_copies(&self, copy_id: &CopyId) -> BackendResult> { + async fn get_related_copies( + &self, + copy_id: &CopyId, + ) -> BackendResult> { self.inner.get_related_copies(copy_id).await } diff --git a/lib/src/backend.rs b/lib/src/backend.rs index f1e55106f..c20cfccb5 100644 --- a/lib/src/backend.rs +++ b/lib/src/backend.rs @@ -474,7 +474,10 @@ pub trait Backend: Any + Send + Sync + Debug { /// /// Backends that don't support copy tracking may return /// `BackendError::Unsupported`. - async fn get_related_copies(&self, copy_id: &CopyId) -> BackendResult>; + async fn get_related_copies( + &self, + copy_id: &CopyId, + ) -> BackendResult>; async fn read_tree(&self, path: &RepoPath, id: &TreeId) -> BackendResult; diff --git a/lib/src/git_backend.rs b/lib/src/git_backend.rs index eae1f1f2e..b25343044 100644 --- a/lib/src/git_backend.rs +++ b/lib/src/git_backend.rs @@ -1067,7 +1067,10 @@ impl Backend for GitBackend { )) } - async fn get_related_copies(&self, _copy_id: &CopyId) -> BackendResult> { + async fn get_related_copies( + &self, + _copy_id: &CopyId, + ) -> BackendResult> { Err(BackendError::Unsupported( "The Git backend doesn't support tracked copies yet".to_string(), )) diff --git a/lib/src/secret_backend.rs b/lib/src/secret_backend.rs index a9d952069..d69533aa3 100644 --- a/lib/src/secret_backend.rs +++ b/lib/src/secret_backend.rs @@ -168,7 +168,10 @@ impl Backend for SecretBackend { )) } - async fn get_related_copies(&self, _copy_id: &CopyId) -> BackendResult> { + async fn get_related_copies( + &self, + _copy_id: &CopyId, + ) -> BackendResult> { Err(BackendError::Unsupported( "The secret backend doesn't support copies".to_string(), )) diff --git a/lib/src/simple_backend.rs b/lib/src/simple_backend.rs index 94ebc6976..9a6ed5f5e 100644 --- a/lib/src/simple_backend.rs +++ b/lib/src/simple_backend.rs @@ -255,7 +255,10 @@ impl Backend for SimpleBackend { )) } - async fn get_related_copies(&self, _copy_id: &CopyId) -> BackendResult> { + async fn get_related_copies( + &self, + _copy_id: &CopyId, + ) -> BackendResult> { Err(BackendError::Unsupported( "The simple backend doesn't support copies".to_string(), )) diff --git a/lib/testutils/src/test_backend.rs b/lib/testutils/src/test_backend.rs index 9be77d735..ff8430f49 100644 --- a/lib/testutils/src/test_backend.rs +++ b/lib/testutils/src/test_backend.rs @@ -306,7 +306,10 @@ impl Backend for TestBackend { .await } - async fn get_related_copies(&self, copy_id: &CopyId) -> BackendResult> { + async fn get_related_copies( + &self, + copy_id: &CopyId, + ) -> BackendResult> { let copy_id = copy_id.clone(); self.run_async(move |data| { let copies = &data.copies; @@ -328,7 +331,7 @@ impl Backend for TestBackend { ) .unwrap() { - histories.push(copies.get(id).unwrap().clone()); + histories.push((id.clone(), copies.get(id).unwrap().clone())); } Ok(histories) }) @@ -466,8 +469,22 @@ mod tests { // Looking up by any id returns the related copies in the same order (children // before parents) let related = backend.get_related_copies(©1_id).block_on().unwrap(); - assert_eq!(related, vec![copy3.clone(), copy2.clone(), copy1.clone()]); - let related: Vec = backend.get_related_copies(©3_id).block_on().unwrap(); - assert_eq!(related, vec![copy3.clone(), copy2.clone(), copy1.clone()]); + assert_eq!( + related, + vec![ + (copy3_id.clone(), copy3.clone()), + (copy2_id.clone(), copy2.clone()), + (copy1_id.clone(), copy1.clone()) + ] + ); + let related = backend.get_related_copies(©3_id).block_on().unwrap(); + assert_eq!( + related, + vec![ + (copy3_id.clone(), copy3.clone()), + (copy2_id.clone(), copy2.clone()), + (copy1_id.clone(), copy1.clone()) + ] + ); } }