static_assert_generic 0.1.2

Static asserts involving const and type generics
Documentation
Build #2359927 2025-07-29 00:53:30
# rustc version
rustc 1.90.0-nightly (f8e355c23 2025-07-27)# docs.rs version
docsrs 0.6.0 (e18d034e 2025-07-28)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/static_assert_generic-0.1.2/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/static_assert_generic-0.1.2/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250727-1.90.0-nightly-f8e355c23\", \"--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", 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] 38545c5f27d4e0c5bf2cd5ab6cd176bb7966e4d287d37c8e85d5d5570e68f7ba
[INFO] running `Command { std: "docker" "start" "-a" "38545c5f27d4e0c5bf2cd5ab6cd176bb7966e4d287d37c8e85d5d5570e68f7ba", kill_on_drop: false }`
[INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op
[INFO] [stderr]  Documenting static_assert_generic v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]   --> src/lib.rs:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | / ```
[INFO] [stderr] 20 | | fn foo<const N: usize>() {
[INFO] [stderr] 21 | |     static_assert!((N: usize) N != 0 => "N must be a non-zero value!");
[INFO] [stderr] ...  |
[INFO] [stderr] 29 | | ```
[INFO] [stderr]    | |___^
[INFO] [stderr]    |
[INFO] [stderr]    = note: error from rustc: unknown start of token: \u{a0}
[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] 19 | ```text
[INFO] [stderr]    |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: Rust code block is empty
[INFO] [stderr]   --> src/lib.rs:31:1
[INFO] [stderr]    |
[INFO] [stderr] 31 | / ```
[INFO] [stderr] ...  |
[INFO] [stderr] 38 | | ```
[INFO] [stderr]    | |___^
[INFO] [stderr]    |
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]    |
[INFO] [stderr] 31 | ```text
[INFO] [stderr]    |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]   --> src/lib.rs:47:1
[INFO] [stderr]    |
[INFO] [stderr] 47 | / ```
[INFO] [stderr] 48 | | fn foo<const N: u32>() {
[INFO] [stderr] 49 | |     static_assert!((N) N != 0 => "N must be a non-zero value!");
[INFO] [stderr] ...  |
[INFO] [stderr] 52 | | ```
[INFO] [stderr]    | |___^
[INFO] [stderr]    |
[INFO] [stderr]    = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]    |
[INFO] [stderr] 47 | ```text
[INFO] [stderr]    |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]   --> src/lib.rs:60:1
[INFO] [stderr]    |
[INFO] [stderr] 60 | / ```
[INFO] [stderr] 61 | | fn bar<const N: usize>() {
[INFO] [stderr] 62 | |     static_assert!(() N != 0 => "N must be a non-zero value!");
[INFO] [stderr] ...  |
[INFO] [stderr] 65 | | ```
[INFO] [stderr]    | |___^
[INFO] [stderr]    |
[INFO] [stderr]    = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]    |
[INFO] [stderr] 60 | ```text
[INFO] [stderr]    |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]   --> src/lib.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | / ```
[INFO] [stderr] 71 | | fn foo<T: ?Sized>() {
[INFO] [stderr] 72 | |     static_assert!((T) ...);
[INFO] [stderr] ...  |
[INFO] [stderr] 75 | | ```
[INFO] [stderr]    | |___^
[INFO] [stderr]    |
[INFO] [stderr]    = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]    |
[INFO] [stderr] 70 | ```text
[INFO] [stderr]    |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]    --> src/lib.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | / ```
[INFO] [stderr] 102 | | fn foo<const C: u32>() {
[INFO] [stderr] 103 | |     static_assert!((C: u32) C > 3 => "C must be greater than 3!");
[INFO] [stderr] 104 | | }
[INFO] [stderr] 105 | | ```
[INFO] [stderr]     | |___^
[INFO] [stderr]     |
[INFO] [stderr]     = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]     |
[INFO] [stderr] 101 | ```text
[INFO] [stderr]     |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]    --> src/lib.rs:109:1
[INFO] [stderr]     |
[INFO] [stderr] 109 | / ```
[INFO] [stderr] 110 | | fn baz<T>() {
[INFO] [stderr] 111 | |     static_assert!((T) std::mem::size_of::<T>() == 4 => "T must be 4 bytes long!");
[INFO] [stderr] 112 | | }
[INFO] [stderr] 113 | | ```
[INFO] [stderr]     | |___^
[INFO] [stderr]     |
[INFO] [stderr]     = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]     |
[INFO] [stderr] 109 | ```text
[INFO] [stderr]     |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]    --> src/lib.rs:117:1
[INFO] [stderr]     |
[INFO] [stderr] 117 | / ```
[INFO] [stderr] 118 | | fn baz<U: ?Sized>() {
[INFO] [stderr] 119 | |     static_assert!((U?) true => "There isn't much you can statically check about unsized types.");
[INFO] [stderr] 120 | | }
[INFO] [stderr] 121 | | ```
[INFO] [stderr]     | |___^
[INFO] [stderr]     |
[INFO] [stderr]     = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]     |
[INFO] [stderr] 117 | ```text
[INFO] [stderr]     |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: could not parse code block as Rust code
[INFO] [stderr]    --> src/lib.rs:125:1
[INFO] [stderr]     |
[INFO] [stderr] 125 | / ```
[INFO] [stderr] 126 | | fn baz<const N: usize, const M: usize, T>() {
[INFO] [stderr] 127 | |     static_assert!((N: usize, M: usize) N > M => "N must be greater than M!");
[INFO] [stderr] 128 | |     static_assert!((N: usize, T) N == std::mem::size_of::<T>() / 2 => "N must be half the size of T!");
[INFO] [stderr] ...   |
[INFO] [stderr] 132 | | baz::<4, 1, u8>(); // panics at "N must be half the size_of T!"
[INFO] [stderr] 133 | | ```
[INFO] [stderr]     | |___^
[INFO] [stderr]     |
[INFO] [stderr]     = note: error from rustc: unknown start of token: \u{a0}
[INFO] [stderr] help: mark blocks that do not contain Rust code as text
[INFO] [stderr]     |
[INFO] [stderr] 125 | ```text
[INFO] [stderr]     |    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `static_assert_generic` (lib doc) generated 9 warnings (run `cargo fix --lib -p static_assert_generic` to apply 9 suggestions)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] [stderr]    Generated /opt/rustwide/target/doc/static_assert_generic/index.html
[INFO] running `Command { std: "docker" "inspect" "38545c5f27d4e0c5bf2cd5ab6cd176bb7966e4d287d37c8e85d5d5570e68f7ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38545c5f27d4e0c5bf2cd5ab6cd176bb7966e4d287d37c8e85d5d5570e68f7ba", kill_on_drop: false }`
[INFO] [stdout] 38545c5f27d4e0c5bf2cd5ab6cd176bb7966e4d287d37c8e85d5d5570e68f7ba