Build #2685139 2025-11-25 05:21:56
# rustc version
rustc 1.93.0-nightly (c871d09d1 2025-11-24)# docs.rs version
docsrs 0.6.0 (f5bb0695 2025-11-24 )# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/api-guidelines-0.1.1/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/api-guidelines-0.1.1/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20251124-1.93.0-nightly-c871d09d1\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] b6a6568b55c19c83bb2da6b03e9b9c2acb8864519f05bb8994b0e998e2edeb65
[INFO] running `Command { std: "docker" "start" "-a" "b6a6568b55c19c83bb2da6b03e9b9c2acb8864519f05bb8994b0e998e2edeb65", kill_on_drop: false }`
[INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op
[INFO] [stderr] Documenting api-guidelines v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unresolved link to `url`
[INFO] [stderr] --> src/lib.rs:1106:84
[INFO] [stderr] |
[INFO] [stderr] 1106 | /// Regular links can be added inline with the usual markdown syntax of [text](url). Links to other types can be added by mark...
[INFO] [stderr] | ^^^ no item named `url` in scope
[INFO] [stderr] |
[INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: unresolved link to `text`
[INFO] [stderr] --> src/lib.rs:1106:147
[INFO] [stderr] |
[INFO] [stderr] 1106 | ...her types can be added by marking them with [`text`], then adding the link target in a new line at the end of the docstring wit...
[INFO] [stderr] | ^^^^ no item named `text` in scope
[INFO] [stderr] |
[INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stderr]
[INFO] [stderr] warning: unresolved link to `text`
[INFO] [stderr] --> src/lib.rs:1106:232
[INFO] [stderr] |
[INFO] [stderr] 1106 | ...a new line at the end of the docstring with [`text`]: <target>, where <target> is described below.
[INFO] [stderr] | ^^^^ no item named `text` in scope
[INFO] [stderr] |
[INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stderr]
[INFO] [stderr] warning: unresolved link to `package`
[INFO] [stderr] --> src/lib.rs:1125:14
[INFO] [stderr] |
[INFO] [stderr] 1125 | /// The [package] section of Cargo.toml should include the following values:
[INFO] [stderr] | ^^^^^^^ no item named `package` in scope
[INFO] [stderr] |
[INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `u8`
[INFO] [stderr] --> src/lib.rs:197:134
[INFO] [stderr] |
[INFO] [stderr] 197 | ...uct.String.html#method.into_bytes) extracts the underlying Vec<u8> of a String, which is free. It takes ownership of a String an...
[INFO] [stderr] | ^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(rustdoc::invalid_html_tags)]` on by default
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 197 | /// [String::into_bytes()](https://doc.rust-lang.org/std/string/struct.String.html#method.into_bytes) extracts the underlying `Vec<u8>` of a String, which is free. It takes ownership of a String and returns an owned Vec<u8>.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `u8`
[INFO] [stderr] --> src/lib.rs:197:222
[INFO] [stderr] |
[INFO] [stderr] 197 | ... free. It takes ownership of a String and returns an owned Vec<u8>.
[INFO] [stderr] | ^^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 197 | /// [String::into_bytes()](https://doc.rust-lang.org/std/string/struct.String.html#method.into_bytes) extracts the underlying Vec<u8> of a String, which is free. It takes ownership of a String and returns an owned `Vec<u8>`.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:322:13
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [Vec<T>](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both FromIterator<T> and Extend<T>.
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [`Vec<T>`](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both FromIterator<T> and Extend<T>.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:322:97
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [Vec<T>](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both FromIterator<T> and Extend<T>.
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [Vec<T>](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both `FromIterator<T>` and Extend<T>.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:322:111
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [Vec<T>](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both FromIterator<T> and Extend<T>.
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 322 | /// [Vec<T>](https://doc.rust-lang.org/std/vec/struct.Vec.html) implements both FromIterator<T> and `Extend<T>`.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr] --> src/lib.rs:417:9
[INFO] [stderr] |
[INFO] [stderr] 417 | /// ```
[INFO] [stderr] | _________^
[INFO] [stderr] 418 | | /// impl<T> Box<T> where T: ?Sized {
[INFO] [stderr] 419 | | /// fn into_raw(b: Box<T>) -> *mut T { /* ... */ }
[INFO] [stderr] 420 | | /// }
[INFO] [stderr] ... |
[INFO] [stderr] 423 | | ///}
[INFO] [stderr] 424 | | /// ```
[INFO] [stderr] | |___________^
[INFO] [stderr] |
[INFO] [stderr] = note: error from rustc: unexpected closing delimiter: `}`
[INFO] [stderr] = note: `#[warn(rustdoc::invalid_rust_codeblocks)]` on by default
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr] |
[INFO] [stderr] 417 | /// ```text
[INFO] [stderr] | ++++
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:425:150
[INFO] [stderr] |
[INFO] [stderr] 425 | ...e call site whether the method being called is a method on Box<T> or a method on T.
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 425 | /// If this were defined as an inherent method instead, it would be confusing at the call site whether the method being called is a method on `Box<T>` or a method on T.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:483:15
[INFO] [stderr] |
[INFO] [stderr] 483 | /// + [Box<T>](https://doc.rust-lang.org/std/boxed/struct.Box.html)
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 483 | /// + [`Box<T>`](https://doc.rust-lang.org/std/boxed/struct.Box.html)
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:485:14
[INFO] [stderr] |
[INFO] [stderr] 485 | /// + [Rc<T>](https://doc.rust-lang.org/std/rc/struct.Rc.html)
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 485 | /// + [`Rc<T>`](https://doc.rust-lang.org/std/rc/struct.Rc.html)
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:486:15
[INFO] [stderr] |
[INFO] [stderr] 486 | /// + [Arc<T>](https://doc.rust-lang.org/std/sync/struct.Arc.html)
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 486 | /// + [`Arc<T>`](https://doc.rust-lang.org/std/sync/struct.Arc.html)
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:503:543
[INFO] [stderr] |
[INFO] [stderr] 503 | ...ons between a from_-prefixed conversion constructor and a From<T> impl.
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 503 | /// Some constructors are "conversion constructors", methods that create a new type from an existing value of a different type. These typically have names beginning with from_ as in [std::io::Error::from_raw_os_error](https://doc.rust-lang.org/std/io/struct.Error.html#method.from_raw_os_error). Note also though the From trait ([C-CONV-TRAITS](https://rust-lang.github.io/api-guidelines/interoperability.html#c-conv-traits)), which is quite similar. There are three distinctions between a from_-prefixed conversion constructor and a `From<T>` impl.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `usize`
[INFO] [stderr] --> src/lib.rs:526:172
[INFO] [stderr] |
[INFO] [stderr] 526 | ... return a bool of whether the value was found, nor an Option<usize> of the index at which the value was maybe found. Instead it ...
[INFO] [stderr] | ^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 526 | /// + [Vec::binary_search](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.binary_search) does not return a bool of whether the value was found, nor an `Option<usize>` of the index at which the value was maybe found. Instead it returns information about the index if found, and also the index at which the value would need to be inserted if not found.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:528:130
[INFO] [stderr] |
[INFO] [stderr] 528 | ...llections/struct.HashMap.html#method.insert) returns an Option<T> that returns the preexisting value for a given key, if any. Fo...
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 528 | /// + [HashMap::insert](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.insert) returns an `Option<T>` that returns the preexisting value for a given key, if any. For cases where the user wants to recover this value having it returned by the insert operation avoids the user having to do a second hash table lookup.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `T`
[INFO] [stderr] --> src/lib.rs:590:164
[INFO] [stderr] |
[INFO] [stderr] 590 | ...eter, it stands for a single actual type. So for example a Vec<T> contains elements of a single concrete type (and, indeed, the ...
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 590 | /// + Homogeneous types. This is the other side of the "precise types" coin: if T is a type parameter, it stands for a single actual type. So for example a `Vec<T>` contains elements of a single concrete type (and, indeed, the vector representation is specialized to lay these out in line). Sometimes heterogeneous collections are useful; see [trait objects](https://rust-lang.github.io/api-guidelines/flexibility.html#c-object).
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `Path`
[INFO] [stderr] --> src/lib.rs:594:135
[INFO] [stderr] |
[INFO] [stderr] 594 | ...ile.html#method.open) takes an argument of generic type AsRef<Path>. This allows files to be opened conveniently from a string l...
[INFO] [stderr] | ^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 594 | /// + [std::fs::File::open](https://doc.rust-lang.org/std/fs/struct.File.html#method.open) takes an argument of generic type `AsRef<Path>`. This allows files to be opened conveniently from a string literal "f.txt", a [ Path ](https://doc.rust-lang.org/std/path/struct.Path.html), an [ OsString ](https://doc.rust-lang.org/std/ffi/struct.OsString.html), and a few other types.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr] --> src/lib.rs:614:9
[INFO] [stderr] |
[INFO] [stderr] 614 | /// ```
[INFO] [stderr] | _________^
[INFO] [stderr] 615 | | /// trait MyTrait {
[INFO] [stderr] 616 | | /// fn object_safe(&self, i: i32);
[INFO] [stderr] 617 | | /// fn not_object_safe<T>(&self, t: T) where Self: Sized;
[INFO] [stderr] 618 | | /// ```
[INFO] [stderr] | |___________^
[INFO] [stderr] |
[INFO] [stderr] = note: error from rustc: this file contains an unclosed delimiter
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr] |
[INFO] [stderr] 614 | /// ```text
[INFO] [stderr] | ++++
[INFO] [stderr]
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr] --> src/lib.rs:1109:9
[INFO] [stderr] |
[INFO] [stderr] 1109 | /// ```
[INFO] [stderr] | _________^
[INFO] [stderr] 1110 | | /// [`serialize_struct`]: #method.serialize_struct
[INFO] [stderr] 1111 | | /// ```
[INFO] [stderr] | |___________^
[INFO] [stderr] |
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr] |
[INFO] [stderr] 1109 | /// ```text
[INFO] [stderr] | ++++
[INFO] [stderr]
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr] --> src/lib.rs:1113:9
[INFO] [stderr] |
[INFO] [stderr] 1113 | /// ```
[INFO] [stderr] | _________^
[INFO] [stderr] 1114 | | /// [`Deserialize`]: trait.Deserialize.html
[INFO] [stderr] 1115 | | /// ```
[INFO] [stderr] | |___________^
[INFO] [stderr] |
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr] |
[INFO] [stderr] 1113 | /// ```text
[INFO] [stderr] | ++++
[INFO] [stderr]
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr] --> src/lib.rs:1117:9
[INFO] [stderr] |
[INFO] [stderr] 1117 | /// ```
[INFO] [stderr] | _________^
[INFO] [stderr] 1118 | | /// [`Value`]: ../enum.Value.html
[INFO] [stderr] 1119 | | /// [`DeserializeOwned`]: de/trait.DeserializeOwned.html
[INFO] [stderr] 1120 | | /// ```
[INFO] [stderr] | |___________^
[INFO] [stderr] |
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] = note: error from rustc: unknown start of token: `
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr] |
[INFO] [stderr] 1117 | /// ```text
[INFO] [stderr] | ++++
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `target`
[INFO] [stderr] --> src/lib.rs:1106:240
[INFO] [stderr] |
[INFO] [stderr] 1106 | ...t in a new line at the end of the docstring with [`text`]: <target>, where <target> is described below.
[INFO] [stderr] | ^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `target`
[INFO] [stderr] --> src/lib.rs:1106:256
[INFO] [stderr] |
[INFO] [stderr] 1106 | ...at the end of the docstring with [`text`]: <target>, where <target> is described below.
[INFO] [stderr] | ^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: this URL is not a hyperlink
[INFO] [stderr] --> src/lib.rs:1139:267
[INFO] [stderr] |
[INFO] [stderr] 1139 | ...repository values. For example, serde sets homepage to https://serde.rs, a dedicated website.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: bare URLs are not automatically turned into clickable links
[INFO] [stderr] = note: `#[warn(rustdoc::bare_urls)]` on by default
[INFO] [stderr] help: use an automatic link instead
[INFO] [stderr] |
[INFO] [stderr] 1139 | /// The homepage metadata should only be set if there is a unique website for the crate other than the source repository or API documentation. Do not make homepage redundant with either the documentation or repository values. For example, serde sets homepage to <https://serde.rs>, a dedicated website.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `PrivateError`
[INFO] [stderr] --> src/lib.rs:1165:233
[INFO] [stderr] |
[INFO] [stderr] 1165 | ...he rustdoc of PublicError by default would show the From<PrivateError> impl. We choose to hide it with #[doc(hidden)] because u...
[INFO] [stderr] | ^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 1165 | /// Especially be selective about which impls are visible in rustdoc -- all the ones that users would need for using the crate fully, but no others. In the following code the rustdoc of PublicError by default would show the `From<PrivateError>` impl. We choose to hide it with #[doc(hidden)] because users can never have a PrivateError in their code so this impl would never be relevant to them.
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: unclosed HTML tag `String`
[INFO] [stderr] --> src/lib.rs:1310:24
[INFO] [stderr] |
[INFO] [stderr] 1310 | /// + Generics: Vec<String>
[INFO] [stderr] | ^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: try marking as source code
[INFO] [stderr] |
[INFO] [stderr] 1310 | /// + Generics: `Vec<String>`
[INFO] [stderr] | + +
[INFO] [stderr]
[INFO] [stderr] warning: `api-guidelines` (lib doc) generated 28 warnings (run `cargo fix --lib -p api-guidelines` to apply 6 suggestions)
[INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/api_guidelines/index.html
[INFO] running `Command { std: "docker" "inspect" "b6a6568b55c19c83bb2da6b03e9b9c2acb8864519f05bb8994b0e998e2edeb65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6a6568b55c19c83bb2da6b03e9b9c2acb8864519f05bb8994b0e998e2edeb65", kill_on_drop: false }`
[INFO] [stdout] b6a6568b55c19c83bb2da6b03e9b9c2acb8864519f05bb8994b0e998e2edeb65