about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNoah Lev <camelidcamel@gmail.com>2022-01-10 15:33:20 -0800
committerNoah Lev <camelidcamel@gmail.com>2022-01-14 12:05:35 -0800
commitc7147e4e1acd49ea01e6d67a85c270946554783a (patch)
tree4f1f3a3600cb9a17aa3c7f001126ee94347085ac
parentcef250d90bbf65af7ec3c8ff5865eaa12a5f4a21 (diff)
downloadrust-c7147e4e1acd49ea01e6d67a85c270946554783a.tar.gz
rust-c7147e4e1acd49ea01e6d67a85c270946554783a.zip
Document and test `UrlPartsBuilder::push_fmt`
-rw-r--r--src/librustdoc/html/url_parts_builder.rs13
-rw-r--r--src/librustdoc/html/url_parts_builder/tests.rs10
2 files changed, 23 insertions, 0 deletions
diff --git a/src/librustdoc/html/url_parts_builder.rs b/src/librustdoc/html/url_parts_builder.rs
index 66c879b8392..2bb78aa7dc9 100644
--- a/src/librustdoc/html/url_parts_builder.rs
+++ b/src/librustdoc/html/url_parts_builder.rs
@@ -67,6 +67,19 @@ impl UrlPartsBuilder {
         self.buf.push_str(part);
     }
 
+    /// Push a component onto the buffer, using [`format!`]'s formatting syntax.
+    ///
+    /// # Examples
+    ///
+    /// Basic usage (equivalent to the example for [`UrlPartsBuilder::push`]):
+    ///
+    /// ```ignore (private-type)
+    /// let mut builder = UrlPartsBuilder::new();
+    /// builder.push("core");
+    /// builder.push("str");
+    /// builder.push_fmt(format_args!("{}.{}.html", "struct", "Bytes"));
+    /// assert_eq!(builder.finish(), "core/str/struct.Bytes.html");
+    /// ```
     crate fn push_fmt(&mut self, args: fmt::Arguments<'_>) {
         if !self.buf.is_empty() {
             self.buf.push('/');
diff --git a/src/librustdoc/html/url_parts_builder/tests.rs b/src/librustdoc/html/url_parts_builder/tests.rs
index 43338c95010..636e1ab5527 100644
--- a/src/librustdoc/html/url_parts_builder/tests.rs
+++ b/src/librustdoc/html/url_parts_builder/tests.rs
@@ -41,6 +41,16 @@ fn push_front_non_empty() {
 }
 
 #[test]
+fn push_fmt() {
+    let mut builder = UrlPartsBuilder::new();
+    builder.push_fmt(format_args!("{}", "core"));
+    builder.push("str");
+    builder.push_front("nightly");
+    builder.push_fmt(format_args!("{}.{}.html", "struct", "Bytes"));
+    t(builder, "nightly/core/str/struct.Bytes.html");
+}
+
+#[test]
 fn collect() {
     t(["core", "str"].into_iter().collect(), "core/str");
     t(["core", "str", "struct.Bytes.html"].into_iter().collect(), "core/str/struct.Bytes.html");