Build failed. If you want to re-trigger a documentation build, you can do it here. You can find more information on docs.rs builds documentation on the builds page.
# error kind ExecutionFailed
# pre-build errors command failed: exit status: 101
# rustc version rustc 1.98.0-nightly (54333ff07 2026-05-22)
# docs.rs version docsrs 0.0.0 (f16e33f3e6ac9fc9e4413728c5dd1b2ba1c6b799 2026-05-23 )
# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "880b240c0ed9773b705d7b0cd79e60121dc0d4ea70a05555d15e2bab6be028fd" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260522-1.98.0-nightly-54333ff07\", \"--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: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting tuple_split v0.2.4 (/opt/rustwide/workdir) [INFO] [stderr] error: `[const]` is not allowed here [INFO] [stderr] --> src/lib.rs:162:33 [INFO] [stderr] | [INFO] [stderr] 162 | pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this trait is not `const`, so it cannot have `[const]` trait bounds [INFO] [stderr] --> src/lib.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] 163 | | where [INFO] [stderr] 164 | | L: Tuple, [INFO] [stderr] 165 | | R: Tuple [INFO] [stderr] 166 | | { [INFO] [stderr] 167 | | fn split_tuple_into(self) -> (L, R); [INFO] [stderr] 168 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error: `[const]` is not allowed here [INFO] [stderr] --> src/lib.rs:162:75 [INFO] [stderr] | [INFO] [stderr] 162 | pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this trait is not `const`, so it cannot have `[const]` trait bounds [INFO] [stderr] --> src/lib.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] 163 | | where [INFO] [stderr] 164 | | L: Tuple, [INFO] [stderr] 165 | | R: Tuple [INFO] [stderr] 166 | | { [INFO] [stderr] 167 | | fn split_tuple_into(self) -> (L, R); [INFO] [stderr] 168 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error: cannot find attribute `const_trait` in this scope [INFO] [stderr] --> src/lib.rs:138:3 [INFO] [stderr] | [INFO] [stderr] 138 | #[const_trait] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find attribute `const_trait` in this scope [INFO] [stderr] --> src/lib.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | #[const_trait] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find attribute `const_trait` in this scope [INFO] [stderr] --> src/lib.rs:196:3 [INFO] [stderr] | [INFO] [stderr] 196 | #[const_trait] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find attribute `const_trait` in this scope [INFO] [stderr] --> src/lib.rs:220:3 [INFO] [stderr] | [INFO] [stderr] 220 | #[const_trait] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes [INFO] [stderr] --> src/lib.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | #![feature(generic_const_exprs)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information [INFO] [stderr] = note: `#[warn(incomplete_features)]` on by default [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:162:33 [INFO] [stderr] | [INFO] [stderr] 162 | pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoLeft` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoLeft` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 197 | pub const trait TupleSplitIntoLeft<L>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:162:75 [INFO] [stderr] | [INFO] [stderr] 162 | pub trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoRight` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoRight` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 221 | pub const trait TupleSplitIntoRight<R>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: const `impl` for trait `TupleSplitInto` which is not `const` [INFO] [stderr] --> src/lib.rs:170:21 [INFO] [stderr] | [INFO] [stderr] 170 | impl<T, L, R> const TupleSplitInto<L, R> for T [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ this trait is not `const` [INFO] [stderr] | [INFO] [stderr] = note: marking a trait with `const` ensures all default method bodies are `const` [INFO] [stderr] = note: adding a non-const method body in the future would be a breaking change [INFO] [stderr] help: mark `TupleSplitInto` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 162 | pub const trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:172:11 [INFO] [stderr] | [INFO] [stderr] 172 | Self: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L>, [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoLeft` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoLeft` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 197 | pub const trait TupleSplitIntoLeft<L>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:172:53 [INFO] [stderr] | [INFO] [stderr] 172 | Self: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L>, [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoRight` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoRight` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 221 | pub const trait TupleSplitIntoRight<R>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:249:8 [INFO] [stderr] | [INFO] [stderr] 249 | T: ~const TupleSplitAt<MIDDLE> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitAt` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitAt` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 139 | pub const trait TupleSplitAt<const MIDDLE: usize>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:272:25 [INFO] [stderr] | [INFO] [stderr] 272 | ConcatTuples<L, R>: ~const TupleSplitInto<L, R> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitInto` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitInto` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 162 | pub const trait TupleSplitInto<L, R>: ~const TupleSplitIntoLeft<L, Right = R> + ~const TupleSplitIntoRight<R, Left = L> [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:293:8 [INFO] [stderr] | [INFO] [stderr] 293 | T: ~const TupleSplitIntoLeft<L> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoLeft` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoLeft` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 197 | pub const trait TupleSplitIntoLeft<L>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: `[const]` can only be applied to `const` traits [INFO] [stderr] --> src/lib.rs:314:8 [INFO] [stderr] | [INFO] [stderr] 314 | T: ~const TupleSplitIntoRight<R> [INFO] [stderr] | ^^^^^^ can't be applied to `TupleSplitIntoRight` [INFO] [stderr] | [INFO] [stderr] help: mark `TupleSplitIntoRight` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 221 | pub const trait TupleSplitIntoRight<R>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: const `impl` for trait `TupleSplitAt` which is not `const` [INFO] [stderr] --> src/lib.rs:321:47 [INFO] [stderr] | [INFO] [stderr] 321 | impl<$($types1,)* $($types2,)*> const TupleSplitAt<{count!($($types1),*)}> for ($($types1,)* $($types2,)*) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not `const` [INFO] [stderr] ... [INFO] [stderr] 397 | / impl_split_all! { [INFO] [stderr] 398 | | ( [INFO] [stderr] 399 | | _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16 [INFO] [stderr] 400 | | ) [INFO] [stderr] 401 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: marking a trait with `const` ensures all default method bodies are `const` [INFO] [stderr] = note: adding a non-const method body in the future would be a breaking change [INFO] [stderr] = note: this error originates in the macro `impl_split_single` which comes from the expansion of the macro `impl_split_all` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: mark `TupleSplitAt` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 139 | pub const trait TupleSplitAt<const MIDDLE: usize>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: const `impl` for trait `TupleSplitIntoLeft` which is not `const` [INFO] [stderr] --> src/lib.rs:333:47 [INFO] [stderr] | [INFO] [stderr] 333 | impl<$($types1,)* $($types2,)*> const TupleSplitIntoLeft<($($types1,)*)> for ($($types1,)* $($types2,)*) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not `const` [INFO] [stderr] ... [INFO] [stderr] 397 | / impl_split_all! { [INFO] [stderr] 398 | | ( [INFO] [stderr] 399 | | _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16 [INFO] [stderr] 400 | | ) [INFO] [stderr] 401 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: marking a trait with `const` ensures all default method bodies are `const` [INFO] [stderr] = note: adding a non-const method body in the future would be a breaking change [INFO] [stderr] = note: this error originates in the macro `impl_split_single` which comes from the expansion of the macro `impl_split_all` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: mark `TupleSplitIntoLeft` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 197 | pub const trait TupleSplitIntoLeft<L>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] error: const `impl` for trait `TupleSplitIntoRight` which is not `const` [INFO] [stderr] --> src/lib.rs:343:47 [INFO] [stderr] | [INFO] [stderr] 343 | impl<$($types1,)* $($types2,)*> const TupleSplitIntoRight<($($types2,)*)> for ($($types1,)* $($types2,)*) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not `const` [INFO] [stderr] ... [INFO] [stderr] 397 | / impl_split_all! { [INFO] [stderr] 398 | | ( [INFO] [stderr] 399 | | _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16 [INFO] [stderr] 400 | | ) [INFO] [stderr] 401 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: marking a trait with `const` ensures all default method bodies are `const` [INFO] [stderr] = note: adding a non-const method body in the future would be a breaking change [INFO] [stderr] = note: this error originates in the macro `impl_split_single` which comes from the expansion of the macro `impl_split_all` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: mark `TupleSplitIntoRight` as `const` to allow it to have `const` implementations [INFO] [stderr] | [INFO] [stderr] 221 | pub const trait TupleSplitIntoRight<R>: Tuple [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: `tuple_split` (lib doc) generated 1 warning [INFO] [stderr] error: could not document `tuple_split` [INFO] running `Command { std: "docker" "inspect" "880b240c0ed9773b705d7b0cd79e60121dc0d4ea70a05555d15e2bab6be028fd", kill_on_drop: false }`