From 8f13d324c49010ea7a844ab03eebce09cb644fbe Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:44:19 +1000 Subject: [PATCH] Fix `::fmt` impl for `Source::Sprase` Add `/` to the end of the url if it doesn't have one Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --- .../src/cargo_crates_v1/crate_version_source.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/binstalk-manifests/src/cargo_crates_v1/crate_version_source.rs b/crates/binstalk-manifests/src/cargo_crates_v1/crate_version_source.rs index e2d54897..83a4c3a7 100644 --- a/crates/binstalk-manifests/src/cargo_crates_v1/crate_version_source.rs +++ b/crates/binstalk-manifests/src/cargo_crates_v1/crate_version_source.rs @@ -1,4 +1,4 @@ -use std::{borrow::Cow, fmt, str::FromStr}; +use std::{borrow::Cow, fmt::{Self, Write as _}, str::FromStr}; use binstalk_types::maybe_owned::MaybeOwned; use compact_str::CompactString; @@ -128,7 +128,15 @@ impl fmt::Display for Source<'_> { Source::Git(url) => write!(f, "git+{url}"), Source::Path(url) => write!(f, "path+{url}"), Source::Registry(url) => write!(f, "registry+{url}"), - Source::Sparse(url) => write!(f, "sparse+{url}"), + Source::Sparse(url) => { + let url = url.as_str(); + write!(f, "sparse+{url}")?; + if (url.ends_with("/")) { + Ok(()) + } else { + f.write_char('/') + } + }, } } }