Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
REVIEW: Use `AsRef<RefStr>` for `set_symbolic_ref`
✗ CI failure Fintan Halpenny committed 21 days ago
commit 91e80949a430cc69d529edda08764aec4221c25e
parent c8e494dc77039b29305efa8334d0717b94038a11
1 failed (1 total) View logs
4 files changed +27 -14
modified crates/radicle-node/src/worker/fetch.rs
@@ -342,7 +342,7 @@ fn set_canonical_refs(
    let crefs = identity.doc().canonical_refs()?;

    for (name, target) in crefs.symbolic().iter() {
-
        if let Err(e) = repo.set_symbolic_ref(name, target.as_refstr(), LOG_MESSAGE) {
+
        if let Err(e) = repo.set_symbolic_ref(name, target, LOG_MESSAGE) {
            log::warn!(
                target: "worker",
                "Failed to set canonical symbolic reference '{name}' → '{target}': {e}"
modified crates/radicle/src/storage.rs
@@ -676,19 +676,22 @@ pub trait WriteRepository: ReadRepository + SignRepository {
    /// not even exist.
    fn set_canonical_symbolic_refs(&self, message: &str) -> Result<(), RepositoryError> {
        for (name, target) in self.identity_doc()?.canonical_refs()?.symbolic().iter() {
-
            self.set_symbolic_ref(name.as_ref(), target.as_ref(), message)?;
+
            self.set_symbolic_ref(name, target, message)?;
        }
        Ok(())
    }

    /// Sets a symbolic reference, if it does not exist or its target is different
    /// from the given one.
-
    fn set_symbolic_ref(
+
    fn set_symbolic_ref<Name, Target>(
        &self,
-
        name: &RefStr,
-
        target: &RefStr,
+
        name: &Name,
+
        target: &Target,
        message: &str,
-
    ) -> Result<(), RepositoryError>;
+
    ) -> Result<(), RepositoryError>
+
    where
+
        Name: AsRef<RefStr>,
+
        Target: AsRef<RefStr>;

    /// Computes the head of the default branch based on the delegate set,
    /// and sets it.
modified crates/radicle/src/storage/git.rs
@@ -936,12 +936,18 @@ impl ReadRepository for Repository {
}

impl WriteRepository for Repository {
-
    fn set_symbolic_ref(
+
    fn set_symbolic_ref<Name, Target>(
        &self,
-
        name: &RefStr,
-
        target: &RefStr,
+
        name: &Name,
+
        target: &Target,
        message: &str,
-
    ) -> Result<(), RepositoryError> {
+
    ) -> Result<(), RepositoryError>
+
    where
+
        Name: AsRef<RefStr>,
+
        Target: AsRef<RefStr>,
+
    {
+
        let name = name.as_ref();
+
        let target = target.as_ref();
        match self.raw().find_reference(name.as_str()) {
            Ok(mut existing) => match existing.symbolic_target() {
                Some(current) if current == target.as_str() => {
modified crates/radicle/src/test/storage.rs
@@ -344,12 +344,16 @@ impl WriteRepository for MockRepository {
        todo!()
    }

-
    fn set_symbolic_ref(
+
    fn set_symbolic_ref<Name, Target>(
        &self,
-
        _name: &fmt::RefStr,
-
        _target: &fmt::RefStr,
+
        _name: &Name,
+
        _target: &Target,
        _message: &str,
-
    ) -> Result<(), RepositoryError> {
+
    ) -> Result<(), RepositoryError>
+
    where
+
        Name: AsRef<fmt::RefStr>,
+
        Target: AsRef<fmt::RefStr>,
+
    {
        todo!()
    }