unzip-array-of-tuple 0.1.0

This package currently provides one function that takes in an array containing tuples of two types; the function then returns two arrays, the first containing all the first elements of the tuples, and the second array containing the second elements of the tuples. This functionality is available in iterators through unzip, but unzip can only return collections which implement Extend; which primitive arrays do not. Therefore, unzip works fine for Vec or other dynamic types, but not for simple, beautiful arrays, with lengths known at compiletime. My implementation is hopefully quite efficient, as it just moves data around, without using too much costly abstractions like std::array::from_fn. This crate has 4 tests that I think cover basically everything; still it could be unsound..
Documentation
Build #1646196 2025-01-19 15:46:40
# rustc version
rustc 1.86.0-nightly (049355708 2025-01-18)# docs.rs version
docsrs 0.6.0 (13d4ccea 2025-01-13)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/unzip-array-of-tuple-0.1.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/unzip-array-of-tuple-0.1.0/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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250118-1.86.0-nightly-049355708\", \"--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] 1a12708c8fdff3675de82a0c73a7721501dd9d41f2d3c4d46f5424c7eafaa303
[INFO] running `Command { std: "docker" "start" "-a" "1a12708c8fdff3675de82a0c73a7721501dd9d41f2d3c4d46f5424c7eafaa303", kill_on_drop: false }`
[INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op
[INFO] [stderr]  Documenting unzip-array-of-tuple v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stderr]    Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/unzip_array_of_tuple/index.html
[INFO] running `Command { std: "docker" "inspect" "1a12708c8fdff3675de82a0c73a7721501dd9d41f2d3c4d46f5424c7eafaa303", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a12708c8fdff3675de82a0c73a7721501dd9d41f2d3c4d46f5424c7eafaa303", kill_on_drop: false }`
[INFO] [stdout] 1a12708c8fdff3675de82a0c73a7721501dd9d41f2d3c4d46f5424c7eafaa303