[INFO] cloning repository https://github.com/arkiny/DreamCoast
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arkiny/DreamCoast" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4c2f2157d4abf3eb9c9913d73cbde29352c36de1
[INFO] documenting arkiny/DreamCoast against 1.99.0-beta.1 for beta-rustdoc-1.99-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/arkiny/DreamCoast
[INFO] finished tweaking git repo https://github.com/arkiny/DreamCoast
[INFO] tweaked toml for git repo https://github.com/arkiny/DreamCoast written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/arkiny/DreamCoast on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/arkiny/DreamCoast already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded imgui v0.12.0
[INFO] [stderr]   Downloaded chlorine v1.0.13
[INFO] [stderr]   Downloaded cpal v0.16.0
[INFO] [stderr]   Downloaded renderdoc v0.12.1
[INFO] [stderr]   Downloaded coreaudio-rs v0.13.0
[INFO] [stderr]   Downloaded imgui-sys v0.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5
[INFO] running `Command { std: "docker" "start" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5", kill_on_drop: false }`
[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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5", kill_on_drop: false }`
[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" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking glam v0.30.10
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking rhi-types v0.0.0 (/opt/rustwide/workdir/crates/rhi-types)
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking imgref v1.12.2
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling dreamcoast-shader v0.0.0 (/opt/rustwide/workdir/crates/shader)
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking chlorine v1.0.13
[INFO] [stderr]    Compiling cpal v0.16.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]  Documenting rhi-types v0.0.0 (/opt/rustwide/workdir/crates/rhi-types)
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stdout] warning: unresolved link to `CommandBuffer::set_globals`
[INFO] [stdout]    --> crates/rhi-types/src/lib.rs:426:59
[INFO] [stdout]     |
[INFO] [stdout] 426 |     /// overflowing the push-constant budget. Bound via [`CommandBuffer::set_globals`].
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `CommandBuffer` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `CommandBuffer::draw_mesh_tasks`
[INFO] [stdout]    --> crates/rhi-types/src/lib.rs:437:7
[INFO] [stdout]     |
[INFO] [stdout] 437 | /// [`CommandBuffer::draw_mesh_tasks`] instead of a vertex draw. Requires
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `CommandBuffer` in scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: dreamcoast-shader@0.0.0: slangc not found — shaders will be unavailable. Set SLANGC, place slangc (slangc.exe on Windows) in tools/slang/bin/, or add it to PATH. Releases: https://github.com/shader-slang/slang/releases
[INFO] [stderr]  Documenting dreamcoast-shader v0.0.0 (/opt/rustwide/workdir/crates/shader)
[INFO] [stdout] warning: unresolved link to `build.rs`
[INFO] [stdout]  --> crates/shader/src/lib.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | //! The build script ([`build.rs`]) compiles every `.slang` source to both
[INFO] [stdout]   |                         ^^^^^^^^ no item named `build.rs` in scope
[INFO] [stdout]   |
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]   = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling imgui-sys v0.12.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking dreamcoast-audio v0.0.0 (/opt/rustwide/workdir/crates/audio)
[INFO] [stderr]  Documenting dreamcoast-audio v0.0.0 (/opt/rustwide/workdir/crates/audio)
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking dreamcoast-core v0.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]  Documenting dreamcoast-core v0.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]     Checking dreamcoast-platform v0.0.0 (/opt/rustwide/workdir/crates/platform)
[INFO] [stderr]     Checking dreamcoast-jobs v0.0.0 (/opt/rustwide/workdir/crates/jobs)
[INFO] [stderr]  Documenting dreamcoast-platform v0.0.0 (/opt/rustwide/workdir/crates/platform)
[INFO] [stderr]  Documenting dreamcoast-jobs v0.0.0 (/opt/rustwide/workdir/crates/jobs)
[INFO] [stdout] warning: field `has_mouse` is never read
[INFO] [stdout]   --> crates/platform/src/input.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Input {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     has_mouse: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/platform/src/input.rs:80:19
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Input {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub(crate) fn begin_frame(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub(crate) fn add_raw_delta(&mut self, dx: f32, dy: f32) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn set_captured(&mut self, on: bool) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub(crate) fn add_wheel(&mut self, delta: f32) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn push_char(&mut self, ch: char) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub(crate) fn set_key(&mut self, vk: usize, down: bool) {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub(crate) fn set_button(&mut self, button: usize, down: bool) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn set_mouse_pos(&mut self, x: i32, y: i32) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rhi v0.0.0 (/opt/rustwide/workdir/crates/rhi)
[INFO] [stderr]  Documenting rhi v0.0.0 (/opt/rustwide/workdir/crates/rhi)
[INFO] [stderr]  Documenting rhi-vulkan v0.0.0 (/opt/rustwide/workdir/crates/rhi-vulkan)
[INFO] [stderr]  Documenting rhi-d3d12 v0.0.0 (/opt/rustwide/workdir/crates/rhi-d3d12)
[INFO] [stderr]  Documenting rhi-metal v0.0.0 (/opt/rustwide/workdir/crates/rhi-metal)
[INFO] [stdout] warning: unresolved link to `Window`
[INFO] [stdout]  --> crates/platform/src/lib.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | //! The rest of the engine depends on [`Window`] for a surface to render into and
[INFO] [stdout]   |                                         ^^^^^^ no item named `Window` in scope
[INFO] [stdout]   |
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]   = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `dreamcoast_platform::Window`
[INFO] [stdout]   --> crates/rhi/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use dreamcoast_platform::Window;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^------
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          no `Window` in the root
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[cfg(windows)]
[INFO] [stdout]    |       ------- the item is gated here
[INFO] [stdout] 28 | pub use window::Window;
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[cfg(target_os = "macos")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `macos` feature
[INFO] [stdout] 33 | pub use window_macos::Window;
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `dreamcoast_jobs` links to private item `deque`
[INFO] [stdout]  --> crates/jobs/src/lib.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | //! - [`deque`] — a from-scratch lock-free Chase-Lev work-stealing deque (the only
[INFO] [stdout]   |         ^^^^^ this item is private
[INFO] [stdout]   |
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout]   = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: redundant explicit link target
[INFO] [stdout]   --> crates/jobs/src/scheduler.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | /// [`Scope`](crate::Scope) API re-introduces borrowed lifetimes safely on top.
[INFO] [stdout]    |      -------  ^^^^^^^^^^^^ explicit target is redundant
[INFO] [stdout]    |      |
[INFO] [stdout]    |      because label contains path that resolves to same destination
[INFO] [stdout]    |
[INFO] [stdout]    = note: when a link's destination is not specified,
[INFO] [stdout]            the label is used to resolve intra-doc links
[INFO] [stdout]    = note: `#[warn(rustdoc::redundant_explicit_links)]` on by default
[INFO] [stdout] help: remove explicit link target
[INFO] [stdout]    |
[INFO] [stdout] 20 - /// [`Scope`](crate::Scope) API re-introduces borrowed lifetimes safely on top.
[INFO] [stdout] 20 + /// [`Scope`] API re-introduces borrowed lifetimes safely on top.
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `D3d12Semaphore`
[INFO] [stdout]   --> crates/rhi-d3d12/src/lib.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | //! [`D3d12Semaphore`] is a no-op and [`D3d12Fence`] emulates binary-fence
[INFO] [stdout]    |       ^^^^^^^^^^^^^^ no item named `D3d12Semaphore` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]    = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `D3d12Fence`
[INFO] [stdout]   --> crates/rhi-d3d12/src/lib.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 | //! [`D3d12Semaphore`] is a no-op and [`D3d12Fence`] emulates binary-fence
[INFO] [stdout]    |                                         ^^^^^^^^^^ no item named `D3d12Fence` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `rhi`
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `dreamcoast_platform::Window`
[INFO] [stdout]   --> crates/rhi/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use dreamcoast_platform::Window;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^------
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          no `Window` in the root
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[cfg(windows)]
[INFO] [stdout]    |       ------- the item is gated here
[INFO] [stdout] 28 | pub use window::Window;
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[cfg(target_os = "macos")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `macos` feature
[INFO] [stdout] 33 | pub use window_macos::Window;
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `InstanceShared`
[INFO] [stdout]  --> crates/rhi-vulkan/src/lib.rs:8:51
[INFO] [stdout]   |
[INFO] [stdout] 8 | //! Object lifetimes are managed with `Arc`: an [`InstanceShared`] outlives the
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^ no item named `InstanceShared` in scope
[INFO] [stdout]   |
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]   = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `DeviceShared`
[INFO] [stdout]  --> crates/rhi-vulkan/src/lib.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | //! [`DeviceShared`] that references it, and every GPU resource holds an
[INFO] [stdout]   |       ^^^^^^^^^^^^ no item named `DeviceShared` in scope
[INFO] [stdout]   |
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:69:5
[INFO] [stdout]     |
[INFO] [stdout]  69 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Buffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 138 ~         match self {
[INFO] [stdout] 139 +             _ => todo!(),
[INFO] [stdout] 140 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:150:15
[INFO] [stdout]     |
[INFO] [stdout] 150 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:69:5
[INFO] [stdout]     |
[INFO] [stdout]  69 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Buffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 150 ~         match self {
[INFO] [stdout] 151 +             _ => todo!(),
[INFO] [stdout] 152 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:69:5
[INFO] [stdout]     |
[INFO] [stdout]  69 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Buffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 162 ~         match self {
[INFO] [stdout] 163 +             _ => todo!(),
[INFO] [stdout] 164 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Texture` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:179:15
[INFO] [stdout]     |
[INFO] [stdout] 179 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Texture` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:73:5
[INFO] [stdout]     |
[INFO] [stdout]  73 |     Texture => rhi_vulkan::VulkanTexture, rhi_d3d12::D3d12Texture, rhi_metal::MetalTexture);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Texture`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 179 ~         match self {
[INFO] [stdout] 180 +             _ => todo!(),
[INFO] [stdout] 181 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&StorageBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:193:15
[INFO] [stdout]     |
[INFO] [stdout] 193 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `StorageBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:71:5
[INFO] [stdout]     |
[INFO] [stdout]  71 |     StorageBuffer => rhi_vulkan::VulkanStorageBuffer, rhi_d3d12::D3d12StorageBuffer, rhi_metal::MetalStorageBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&StorageBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 193 ~         match self {
[INFO] [stdout] 194 +             _ => todo!(),
[INFO] [stdout] 195 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&StorageBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `StorageBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:71:5
[INFO] [stdout]     |
[INFO] [stdout]  71 |     StorageBuffer => rhi_vulkan::VulkanStorageBuffer, rhi_d3d12::D3d12StorageBuffer, rhi_metal::MetalStorageBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&StorageBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 207 ~         match self {
[INFO] [stdout] 208 +             _ => todo!(),
[INFO] [stdout] 209 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&StorageBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:223:15
[INFO] [stdout]     |
[INFO] [stdout] 223 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `StorageBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:71:5
[INFO] [stdout]     |
[INFO] [stdout]  71 |     StorageBuffer => rhi_vulkan::VulkanStorageBuffer, rhi_d3d12::D3d12StorageBuffer, rhi_metal::MetalStorageBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&StorageBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 223 ~         match self {
[INFO] [stdout] 224 +             _ => todo!(),
[INFO] [stdout] 225 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&RenderTarget` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:237:15
[INFO] [stdout]     |
[INFO] [stdout] 237 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `RenderTarget` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:77:5
[INFO] [stdout]     |
[INFO] [stdout]  77 |     RenderTarget => rhi_vulkan::VulkanRenderTarget, rhi_d3d12::D3d12RenderTarget, rhi_metal::MetalRenderTarget);
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&RenderTarget`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 237 ~         match self {
[INFO] [stdout] 238 +             _ => todo!(),
[INFO] [stdout] 239 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&RenderTarget` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:249:15
[INFO] [stdout]     |
[INFO] [stdout] 249 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `RenderTarget` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:77:5
[INFO] [stdout]     |
[INFO] [stdout]  77 |     RenderTarget => rhi_vulkan::VulkanRenderTarget, rhi_d3d12::D3d12RenderTarget, rhi_metal::MetalRenderTarget);
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&RenderTarget`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 249 ~         match self {
[INFO] [stdout] 250 +             _ => todo!(),
[INFO] [stdout] 251 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&RenderTarget` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:261:15
[INFO] [stdout]     |
[INFO] [stdout] 261 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `RenderTarget` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:77:5
[INFO] [stdout]     |
[INFO] [stdout]  77 |     RenderTarget => rhi_vulkan::VulkanRenderTarget, rhi_d3d12::D3d12RenderTarget, rhi_metal::MetalRenderTarget);
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&RenderTarget`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 261 ~         match self {
[INFO] [stdout] 262 +             _ => todo!(),
[INFO] [stdout] 263 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Volume` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:275:15
[INFO] [stdout]     |
[INFO] [stdout] 275 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Volume` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:81:5
[INFO] [stdout]     |
[INFO] [stdout]  81 |     Volume => rhi_vulkan::VulkanVolume, rhi_d3d12::D3d12Volume, rhi_metal::MetalVolume);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Volume`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         match self {
[INFO] [stdout] 276 +             _ => todo!(),
[INFO] [stdout] 277 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Volume` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:287:15
[INFO] [stdout]     |
[INFO] [stdout] 287 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Volume` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:81:5
[INFO] [stdout]     |
[INFO] [stdout]  81 |     Volume => rhi_vulkan::VulkanVolume, rhi_d3d12::D3d12Volume, rhi_metal::MetalVolume);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Volume`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 287 ~         match self {
[INFO] [stdout] 288 +             _ => todo!(),
[INFO] [stdout] 289 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&DepthBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:301:15
[INFO] [stdout]     |
[INFO] [stdout] 301 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `DepthBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     DepthBuffer => rhi_vulkan::VulkanDepthBuffer, rhi_d3d12::D3d12DepthBuffer, rhi_metal::MetalDepthBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&DepthBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 301 ~         match self {
[INFO] [stdout] 302 +             _ => todo!(),
[INFO] [stdout] 303 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&DepthBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:313:15
[INFO] [stdout]     |
[INFO] [stdout] 313 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `DepthBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     DepthBuffer => rhi_vulkan::VulkanDepthBuffer, rhi_d3d12::D3d12DepthBuffer, rhi_metal::MetalDepthBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&DepthBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 313 ~         match self {
[INFO] [stdout] 314 +             _ => todo!(),
[INFO] [stdout] 315 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:327:15
[INFO] [stdout]     |
[INFO] [stdout] 327 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:79:5
[INFO] [stdout]     |
[INFO] [stdout]  79 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 327 ~         match self {
[INFO] [stdout] 328 +             _ => todo!(),
[INFO] [stdout] 329 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:339:15
[INFO] [stdout]     |
[INFO] [stdout] 339 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:79:5
[INFO] [stdout]     |
[INFO] [stdout]  79 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 339 ~         match self {
[INFO] [stdout] 340 +             _ => todo!(),
[INFO] [stdout] 341 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:351:15
[INFO] [stdout]     |
[INFO] [stdout] 351 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:79:5
[INFO] [stdout]     |
[INFO] [stdout]  79 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 351 ~         match self {
[INFO] [stdout] 352 +             _ => todo!(),
[INFO] [stdout] 353 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:363:15
[INFO] [stdout]     |
[INFO] [stdout] 363 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:79:5
[INFO] [stdout]     |
[INFO] [stdout]  79 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 363 ~         match self {
[INFO] [stdout] 364 +             _ => todo!(),
[INFO] [stdout] 365 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&QueryHeap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `QueryHeap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:89:5
[INFO] [stdout]     |
[INFO] [stdout]  89 |     QueryHeap => rhi_vulkan::VulkanQueryHeap, rhi_d3d12::D3d12QueryHeap, rhi_metal::MetalQueryHeap);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&QueryHeap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 377 ~         match self {
[INFO] [stdout] 378 +             _ => todo!(),
[INFO] [stdout] 379 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&QueryHeap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:389:15
[INFO] [stdout]     |
[INFO] [stdout] 389 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `QueryHeap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:89:5
[INFO] [stdout]     |
[INFO] [stdout]  89 |     QueryHeap => rhi_vulkan::VulkanQueryHeap, rhi_d3d12::D3d12QueryHeap, rhi_metal::MetalQueryHeap);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&QueryHeap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 389 ~         match self {
[INFO] [stdout] 390 +             _ => todo!(),
[INFO] [stdout] 391 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&QueryHeap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `QueryHeap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:89:5
[INFO] [stdout]     |
[INFO] [stdout]  89 |     QueryHeap => rhi_vulkan::VulkanQueryHeap, rhi_d3d12::D3d12QueryHeap, rhi_metal::MetalQueryHeap);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&QueryHeap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 402 ~         match self {
[INFO] [stdout] 403 +             _ => todo!(),
[INFO] [stdout] 404 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Instance` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:433:15
[INFO] [stdout]     |
[INFO] [stdout] 433 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Instance` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:47:5
[INFO] [stdout]     |
[INFO] [stdout]  47 |     Instance => rhi_vulkan::VulkanInstance, rhi_d3d12::D3d12Instance, rhi_metal::MetalInstance);
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Instance`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 433 ~         match self {
[INFO] [stdout] 434 +             _ => todo!(),
[INFO] [stdout] 435 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Instance` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:445:15
[INFO] [stdout]     |
[INFO] [stdout] 445 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Instance` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:47:5
[INFO] [stdout]     |
[INFO] [stdout]  47 |     Instance => rhi_vulkan::VulkanInstance, rhi_d3d12::D3d12Instance, rhi_metal::MetalInstance);
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Instance`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 445 ~         match self {
[INFO] [stdout] 446 +             _ => todo!(),
[INFO] [stdout] 447 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:458:15
[INFO] [stdout]     |
[INFO] [stdout] 458 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 458 ~         match self {
[INFO] [stdout] 459 +             _ => todo!(),
[INFO] [stdout] 460 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:472:15
[INFO] [stdout]     |
[INFO] [stdout] 472 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 472 ~         match self {
[INFO] [stdout] 473 +             _ => todo!(),
[INFO] [stdout] 474 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:483:15
[INFO] [stdout]     |
[INFO] [stdout] 483 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 483 ~         match self {
[INFO] [stdout] 484 +             _ => todo!(),
[INFO] [stdout] 485 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:495:15
[INFO] [stdout]     |
[INFO] [stdout] 495 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 495 ~         match self {
[INFO] [stdout] 496 +             _ => todo!(),
[INFO] [stdout] 497 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:506:15
[INFO] [stdout]     |
[INFO] [stdout] 506 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 506 ~         match self {
[INFO] [stdout] 507 +             _ => todo!(),
[INFO] [stdout] 508 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:521:15
[INFO] [stdout]     |
[INFO] [stdout] 521 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 521 ~         match self {
[INFO] [stdout] 522 +             _ => todo!(),
[INFO] [stdout] 523 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:534:15
[INFO] [stdout]     |
[INFO] [stdout] 534 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 534 ~         match self {
[INFO] [stdout] 535 +             _ => todo!(),
[INFO] [stdout] 536 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:546:15
[INFO] [stdout]     |
[INFO] [stdout] 546 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 546 ~         match self {
[INFO] [stdout] 547 +             _ => todo!(),
[INFO] [stdout] 548 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:558:15
[INFO] [stdout]     |
[INFO] [stdout] 558 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 558 ~         match self {
[INFO] [stdout] 559 +             _ => todo!(),
[INFO] [stdout] 560 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:573:15
[INFO] [stdout]     |
[INFO] [stdout] 573 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 573 ~         match self {
[INFO] [stdout] 574 +             _ => todo!(),
[INFO] [stdout] 575 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:589:15
[INFO] [stdout]     |
[INFO] [stdout] 589 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 589 ~         match self {
[INFO] [stdout] 590 +             _ => todo!(),
[INFO] [stdout] 591 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 603 ~         match self {
[INFO] [stdout] 604 +             _ => todo!(),
[INFO] [stdout] 605 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:617:15
[INFO] [stdout]     |
[INFO] [stdout] 617 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 617 ~         match self {
[INFO] [stdout] 618 +             _ => todo!(),
[INFO] [stdout] 619 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:632:15
[INFO] [stdout]     |
[INFO] [stdout] 632 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 632 ~         match self {
[INFO] [stdout] 633 +             _ => todo!(),
[INFO] [stdout] 634 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:648:15
[INFO] [stdout]     |
[INFO] [stdout] 648 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 648 ~         match self {
[INFO] [stdout] 649 +             _ => todo!(),
[INFO] [stdout] 650 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:659:15
[INFO] [stdout]     |
[INFO] [stdout] 659 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 659 ~         match self {
[INFO] [stdout] 660 +             _ => todo!(),
[INFO] [stdout] 661 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:678:15
[INFO] [stdout]     |
[INFO] [stdout] 678 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 678 ~         match self {
[INFO] [stdout] 679 +             _ => todo!(),
[INFO] [stdout] 680 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:729:15
[INFO] [stdout]     |
[INFO] [stdout] 729 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 729 ~         match self {
[INFO] [stdout] 730 +             _ => todo!(),
[INFO] [stdout] 731 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &RaytracingScene)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:748:15
[INFO] [stdout]     |
[INFO] [stdout] 748 |         match (self, scene) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &RaytracingScene)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 748 ~         match (self, scene) {
[INFO] [stdout] 749 +             _ => todo!(),
[INFO] [stdout] 750 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:762:15
[INFO] [stdout]     |
[INFO] [stdout] 762 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 762 ~         match self {
[INFO] [stdout] 763 +             _ => todo!(),
[INFO] [stdout] 764 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:778:15
[INFO] [stdout]     |
[INFO] [stdout] 778 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 778 ~         match self {
[INFO] [stdout] 779 +             _ => todo!(),
[INFO] [stdout] 780 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:795:15
[INFO] [stdout]     |
[INFO] [stdout] 795 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 795 ~         match self {
[INFO] [stdout] 796 +             _ => todo!(),
[INFO] [stdout] 797 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &Buffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:815:15
[INFO] [stdout]     |
[INFO] [stdout] 815 |         match (self, buffer) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 815 ~         match (self, buffer) {
[INFO] [stdout] 816 +             _ => todo!(),
[INFO] [stdout] 817 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:828:15
[INFO] [stdout]     |
[INFO] [stdout] 828 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 828 ~         match self {
[INFO] [stdout] 829 +             _ => todo!(),
[INFO] [stdout] 830 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:847:15
[INFO] [stdout]     |
[INFO] [stdout] 847 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 847 ~         match self {
[INFO] [stdout] 848 +             _ => todo!(),
[INFO] [stdout] 849 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:858:15
[INFO] [stdout]     |
[INFO] [stdout] 858 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 858 ~         match self {
[INFO] [stdout] 859 +             _ => todo!(),
[INFO] [stdout] 860 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:869:15
[INFO] [stdout]     |
[INFO] [stdout] 869 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 869 ~         match self {
[INFO] [stdout] 870 +             _ => todo!(),
[INFO] [stdout] 871 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:882:15
[INFO] [stdout]     |
[INFO] [stdout] 882 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 882 ~         match self {
[INFO] [stdout] 883 +             _ => todo!(),
[INFO] [stdout] 884 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:898:15
[INFO] [stdout]     |
[INFO] [stdout] 898 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 898 ~         match self {
[INFO] [stdout] 899 +             _ => todo!(),
[INFO] [stdout] 900 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &Volume)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:920:15
[INFO] [stdout]     |
[INFO] [stdout] 920 |         match (self, volume) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &Volume)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 920 ~         match (self, volume) {
[INFO] [stdout] 921 +             _ => todo!(),
[INFO] [stdout] 922 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:934:15
[INFO] [stdout]     |
[INFO] [stdout] 934 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 934 ~         match self {
[INFO] [stdout] 935 +             _ => todo!(),
[INFO] [stdout] 936 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &Swapchain)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:948:15
[INFO] [stdout]     |
[INFO] [stdout] 948 |         match (self, swapchain) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 948 ~         match (self, swapchain) {
[INFO] [stdout] 949 +             _ => todo!(),
[INFO] [stdout] 950 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:962:15
[INFO] [stdout]     |
[INFO] [stdout] 962 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 962 ~         match self {
[INFO] [stdout] 963 +             _ => todo!(),
[INFO] [stdout] 964 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:974:15
[INFO] [stdout]     |
[INFO] [stdout] 974 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 974 ~         match self {
[INFO] [stdout] 975 +             _ => todo!(),
[INFO] [stdout] 976 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &TransientHeap)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:991:15
[INFO] [stdout]     |
[INFO] [stdout] 991 |         match (self, heap) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &TransientHeap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 991 ~         match (self, heap) {
[INFO] [stdout] 992 +             _ => todo!(),
[INFO] [stdout] 993 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1010:15
[INFO] [stdout]      |
[INFO] [stdout] 1010 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1010 ~         match self {
[INFO] [stdout] 1011 +             _ => todo!(),
[INFO] [stdout] 1012 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1021:15
[INFO] [stdout]      |
[INFO] [stdout] 1021 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1021 ~         match self {
[INFO] [stdout] 1022 +             _ => todo!(),
[INFO] [stdout] 1023 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1032:15
[INFO] [stdout]      |
[INFO] [stdout] 1032 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1032 ~         match self {
[INFO] [stdout] 1033 +             _ => todo!(),
[INFO] [stdout] 1034 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1043:15
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1043 ~         match self {
[INFO] [stdout] 1044 +             _ => todo!(),
[INFO] [stdout] 1045 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1058:15
[INFO] [stdout]      |
[INFO] [stdout] 1058 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1058 ~         match self {
[INFO] [stdout] 1059 +             _ => todo!(),
[INFO] [stdout] 1060 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1070:15
[INFO] [stdout]      |
[INFO] [stdout] 1070 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:49:5
[INFO] [stdout]      |
[INFO] [stdout]   49 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Device`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1070 ~         match self {
[INFO] [stdout] 1071 +             _ => todo!(),
[INFO] [stdout] 1072 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Swapchain, &Semaphore)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1085:15
[INFO] [stdout]      |
[INFO] [stdout] 1085 |         match (self, signal) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Swapchain, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1085 ~         match (self, signal) {
[INFO] [stdout] 1086 +             _ => todo!(),
[INFO] [stdout] 1087 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut Swapchain` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1098:15
[INFO] [stdout]      |
[INFO] [stdout] 1098 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:55:5
[INFO] [stdout]      |
[INFO] [stdout]   55 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&mut Swapchain`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1098 ~         match self {
[INFO] [stdout] 1099 +             _ => todo!(),
[INFO] [stdout] 1100 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1109:15
[INFO] [stdout]      |
[INFO] [stdout] 1109 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:55:5
[INFO] [stdout]      |
[INFO] [stdout]   55 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Swapchain`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1109 ~         match self {
[INFO] [stdout] 1110 +             _ => todo!(),
[INFO] [stdout] 1111 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1120:15
[INFO] [stdout]      |
[INFO] [stdout] 1120 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:55:5
[INFO] [stdout]      |
[INFO] [stdout]   55 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Swapchain`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1120 ~         match self {
[INFO] [stdout] 1121 +             _ => todo!(),
[INFO] [stdout] 1122 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1131:15
[INFO] [stdout]      |
[INFO] [stdout] 1131 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:55:5
[INFO] [stdout]      |
[INFO] [stdout]   55 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Swapchain`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1131 ~         match self {
[INFO] [stdout] 1132 +             _ => todo!(),
[INFO] [stdout] 1133 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1144:15
[INFO] [stdout]      |
[INFO] [stdout] 1144 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1144 ~         match self {
[INFO] [stdout] 1145 +             _ => todo!(),
[INFO] [stdout] 1146 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1155:15
[INFO] [stdout]      |
[INFO] [stdout] 1155 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1155 ~         match self {
[INFO] [stdout] 1156 +             _ => todo!(),
[INFO] [stdout] 1157 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &QueryHeap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1169:15
[INFO] [stdout]      |
[INFO] [stdout] 1169 |         match (self, heap) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &QueryHeap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1169 ~         match (self, heap) {
[INFO] [stdout] 1170 +             _ => todo!(),
[INFO] [stdout] 1171 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &QueryHeap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1183:15
[INFO] [stdout]      |
[INFO] [stdout] 1183 |         match (self, heap) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &QueryHeap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1183 ~         match (self, heap) {
[INFO] [stdout] 1184 +             _ => todo!(),
[INFO] [stdout] 1185 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &QueryHeap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1198:15
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         match (self, heap) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &QueryHeap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1198 ~         match (self, heap) {
[INFO] [stdout] 1199 +             _ => todo!(),
[INFO] [stdout] 1200 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1213:15
[INFO] [stdout]      |
[INFO] [stdout] 1213 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1213 ~         match self {
[INFO] [stdout] 1214 +             _ => todo!(),
[INFO] [stdout] 1215 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1225:15
[INFO] [stdout]      |
[INFO] [stdout] 1225 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1225 ~         match self {
[INFO] [stdout] 1226 +             _ => todo!(),
[INFO] [stdout] 1227 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1236:15
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         match (self, swapchain) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1236 ~         match (self, swapchain) {
[INFO] [stdout] 1237 +             _ => todo!(),
[INFO] [stdout] 1238 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1251:15
[INFO] [stdout]      |
[INFO] [stdout] 1251 |         match (self, swapchain) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1251 ~         match (self, swapchain) {
[INFO] [stdout] 1252 +             _ => todo!(),
[INFO] [stdout] 1253 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain, Option<&DepthBuffer>)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1272:15
[INFO] [stdout]      |
[INFO] [stdout] 1272 |         match (self, swapchain, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain, Option<&DepthBuffer>)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1272 ~         match (self, swapchain, depth) {
[INFO] [stdout] 1273 +             _ => todo!(),
[INFO] [stdout] 1274 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget, Option<&DepthBuffer>)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1312:15
[INFO] [stdout]      |
[INFO] [stdout] 1312 |         match (self, target, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget, Option<&DepthBuffer>)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1312 ~         match (self, target, depth) {
[INFO] [stdout] 1313 +             _ => todo!(),
[INFO] [stdout] 1314 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1352:15
[INFO] [stdout]      |
[INFO] [stdout] 1352 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1352 ~         match self {
[INFO] [stdout] 1353 +             _ => todo!(),
[INFO] [stdout] 1354 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1409:15
[INFO] [stdout]      |
[INFO] [stdout] 1409 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1409 ~         match (self, buffer) {
[INFO] [stdout] 1410 +             _ => todo!(),
[INFO] [stdout] 1411 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1425:15
[INFO] [stdout]      |
[INFO] [stdout] 1425 |         match (self, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1425 ~         match (self, depth) {
[INFO] [stdout] 1426 +             _ => todo!(),
[INFO] [stdout] 1427 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1442:15
[INFO] [stdout]      |
[INFO] [stdout] 1442 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1442 ~         match self {
[INFO] [stdout] 1443 +             _ => todo!(),
[INFO] [stdout] 1444 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1454:15
[INFO] [stdout]      |
[INFO] [stdout] 1454 |         match (self, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1454 ~         match (self, depth) {
[INFO] [stdout] 1455 +             _ => todo!(),
[INFO] [stdout] 1456 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1468:15
[INFO] [stdout]      |
[INFO] [stdout] 1468 |         match (self, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1468 ~         match (self, depth) {
[INFO] [stdout] 1469 +             _ => todo!(),
[INFO] [stdout] 1470 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1482:15
[INFO] [stdout]      |
[INFO] [stdout] 1482 |         match (self, cube) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1482 ~         match (self, cube) {
[INFO] [stdout] 1483 +             _ => todo!(),
[INFO] [stdout] 1484 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1496:15
[INFO] [stdout]      |
[INFO] [stdout] 1496 |         match (self, cube) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1496 ~         match (self, cube) {
[INFO] [stdout] 1497 +             _ => todo!(),
[INFO] [stdout] 1498 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1517:15
[INFO] [stdout]      |
[INFO] [stdout] 1517 |         match (self, cube) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1517 ~         match (self, cube) {
[INFO] [stdout] 1518 +             _ => todo!(),
[INFO] [stdout] 1519 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap, &DepthBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1542:15
[INFO] [stdout]      |
[INFO] [stdout] 1542 |         match (self, cube, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1542 ~         match (self, cube, depth) {
[INFO] [stdout] 1543 +             _ => todo!(),
[INFO] [stdout] 1544 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1561:15
[INFO] [stdout]      |
[INFO] [stdout] 1561 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1561 ~         match self {
[INFO] [stdout] 1562 +             _ => todo!(),
[INFO] [stdout] 1563 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1582:15
[INFO] [stdout]      |
[INFO] [stdout] 1582 |         match (self, swapchain, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1582 ~         match (self, swapchain, buffer) {
[INFO] [stdout] 1583 +             _ => todo!(),
[INFO] [stdout] 1584 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1601:15
[INFO] [stdout]      |
[INFO] [stdout] 1601 |         match (self, swapchain) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1601 ~         match (self, swapchain) {
[INFO] [stdout] 1602 +             _ => todo!(),
[INFO] [stdout] 1603 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1615:15
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1615 ~         match self {
[INFO] [stdout] 1616 +             _ => todo!(),
[INFO] [stdout] 1617 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1627:15
[INFO] [stdout]      |
[INFO] [stdout] 1627 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1627 ~         match (self, target) {
[INFO] [stdout] 1628 +             _ => todo!(),
[INFO] [stdout] 1629 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1641:15
[INFO] [stdout]      |
[INFO] [stdout] 1641 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1641 ~         match (self, target) {
[INFO] [stdout] 1642 +             _ => todo!(),
[INFO] [stdout] 1643 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1656:15
[INFO] [stdout]      |
[INFO] [stdout] 1656 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1656 ~         match (self, target) {
[INFO] [stdout] 1657 +             _ => todo!(),
[INFO] [stdout] 1658 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &GraphicsPipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1669:15
[INFO] [stdout]      |
[INFO] [stdout] 1669 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &GraphicsPipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1669 ~         match (self, pipeline) {
[INFO] [stdout] 1670 +             _ => todo!(),
[INFO] [stdout] 1671 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1682:15
[INFO] [stdout]      |
[INFO] [stdout] 1682 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1682 ~         match self {
[INFO] [stdout] 1683 +             _ => todo!(),
[INFO] [stdout] 1684 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &ComputePipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1694:15
[INFO] [stdout]      |
[INFO] [stdout] 1694 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &ComputePipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1694 ~         match (self, pipeline) {
[INFO] [stdout] 1695 +             _ => todo!(),
[INFO] [stdout] 1696 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &MeshPipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1709:15
[INFO] [stdout]      |
[INFO] [stdout] 1709 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &MeshPipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1709 ~         match (self, pipeline) {
[INFO] [stdout] 1710 +             _ => todo!(),
[INFO] [stdout] 1711 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1724:15
[INFO] [stdout]      |
[INFO] [stdout] 1724 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1724 ~         match self {
[INFO] [stdout] 1725 +             _ => todo!(),
[INFO] [stdout] 1726 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1737:15
[INFO] [stdout]      |
[INFO] [stdout] 1737 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1737 ~         match (self, buffer) {
[INFO] [stdout] 1738 +             _ => todo!(),
[INFO] [stdout] 1739 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1751:15
[INFO] [stdout]      |
[INFO] [stdout] 1751 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1751 ~         match self {
[INFO] [stdout] 1752 +             _ => todo!(),
[INFO] [stdout] 1753 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1763:15
[INFO] [stdout]      |
[INFO] [stdout] 1763 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1763 ~         match self {
[INFO] [stdout] 1764 +             _ => todo!(),
[INFO] [stdout] 1765 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1778:15
[INFO] [stdout]      |
[INFO] [stdout] 1778 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1778 ~         match (self, buffer) {
[INFO] [stdout] 1779 +             _ => todo!(),
[INFO] [stdout] 1780 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1792:15
[INFO] [stdout]      |
[INFO] [stdout] 1792 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1792 ~         match self {
[INFO] [stdout] 1793 +             _ => todo!(),
[INFO] [stdout] 1794 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RaytracingPipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1805:15
[INFO] [stdout]      |
[INFO] [stdout] 1805 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RaytracingPipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1805 ~         match (self, pipeline) {
[INFO] [stdout] 1806 +             _ => todo!(),
[INFO] [stdout] 1807 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1819:15
[INFO] [stdout]      |
[INFO] [stdout] 1819 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1819 ~         match self {
[INFO] [stdout] 1820 +             _ => todo!(),
[INFO] [stdout] 1821 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RaytracingPipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1831:15
[INFO] [stdout]      |
[INFO] [stdout] 1831 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RaytracingPipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1831 ~         match (self, pipeline) {
[INFO] [stdout] 1832 +             _ => todo!(),
[INFO] [stdout] 1833 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1845:15
[INFO] [stdout]      |
[INFO] [stdout] 1845 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1845 ~         match (self, target) {
[INFO] [stdout] 1846 +             _ => todo!(),
[INFO] [stdout] 1847 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Volume)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1859:15
[INFO] [stdout]      |
[INFO] [stdout] 1859 |         match (self, volume) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Volume)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1859 ~         match (self, volume) {
[INFO] [stdout] 1860 +             _ => todo!(),
[INFO] [stdout] 1861 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Volume)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1873:15
[INFO] [stdout]      |
[INFO] [stdout] 1873 |         match (self, volume) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Volume)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1873 ~         match (self, volume) {
[INFO] [stdout] 1874 +             _ => todo!(),
[INFO] [stdout] 1875 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1887:15
[INFO] [stdout]      |
[INFO] [stdout] 1887 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1887 ~         match (self, target) {
[INFO] [stdout] 1888 +             _ => todo!(),
[INFO] [stdout] 1889 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1901:15
[INFO] [stdout]      |
[INFO] [stdout] 1901 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1901 ~         match (self, buffer) {
[INFO] [stdout] 1902 +             _ => todo!(),
[INFO] [stdout] 1903 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1917:15
[INFO] [stdout]      |
[INFO] [stdout] 1917 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1917 ~         match (self, buffer) {
[INFO] [stdout] 1918 +             _ => todo!(),
[INFO] [stdout] 1919 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1932:15
[INFO] [stdout]      |
[INFO] [stdout] 1932 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1932 ~         match (self, buffer) {
[INFO] [stdout] 1933 +             _ => todo!(),
[INFO] [stdout] 1934 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1946:15
[INFO] [stdout]      |
[INFO] [stdout] 1946 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1946 ~         match (self, buffer) {
[INFO] [stdout] 1947 +             _ => todo!(),
[INFO] [stdout] 1948 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1962:15
[INFO] [stdout]      |
[INFO] [stdout] 1962 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1962 ~         match (self, buffer) {
[INFO] [stdout] 1963 +             _ => todo!(),
[INFO] [stdout] 1964 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1981:15
[INFO] [stdout]      |
[INFO] [stdout] 1981 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1981 ~         match self {
[INFO] [stdout] 1982 +             _ => todo!(),
[INFO] [stdout] 1983 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1994:15
[INFO] [stdout]      |
[INFO] [stdout] 1994 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1994 ~         match self {
[INFO] [stdout] 1995 +             _ => todo!(),
[INFO] [stdout] 1996 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2005:15
[INFO] [stdout]      |
[INFO] [stdout] 2005 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2005 ~         match (self, buffer) {
[INFO] [stdout] 2006 +             _ => todo!(),
[INFO] [stdout] 2007 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2018:15
[INFO] [stdout]      |
[INFO] [stdout] 2018 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2018 ~         match (self, buffer) {
[INFO] [stdout] 2019 +             _ => todo!(),
[INFO] [stdout] 2020 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2031:15
[INFO] [stdout]      |
[INFO] [stdout] 2031 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2031 ~         match self {
[INFO] [stdout] 2032 +             _ => todo!(),
[INFO] [stdout] 2033 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2042:15
[INFO] [stdout]      |
[INFO] [stdout] 2042 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:63:5
[INFO] [stdout]      |
[INFO] [stdout]   63 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2042 ~         match self {
[INFO] [stdout] 2043 +             _ => todo!(),
[INFO] [stdout] 2044 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2061:15
[INFO] [stdout]      |
[INFO] [stdout] 2061 |         match (self, cmd, wait, signal, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2061 ~         match (self, cmd, wait, signal, fence) {
[INFO] [stdout] 2062 +             _ => todo!(),
[INFO] [stdout] 2063 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Semaphore, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2104:15
[INFO] [stdout]      |
[INFO] [stdout] 2104 |         match (self, cmd, wait, compute_wait, signal, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Semaphore, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2104 ~         match (self, cmd, wait, compute_wait, signal, fence) {
[INFO] [stdout] 2105 +             _ => todo!(),
[INFO] [stdout] 2106 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2140:15
[INFO] [stdout]      |
[INFO] [stdout] 2140 |         match (self, cmd, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2140 ~         match (self, cmd, fence) {
[INFO] [stdout] 2141 +             _ => todo!(),
[INFO] [stdout] 2142 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &Swapchain, &Semaphore)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2159:15
[INFO] [stdout]      |
[INFO] [stdout] 2159 |         match (self, swapchain, wait) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &Swapchain, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2159 ~         match (self, swapchain, wait) {
[INFO] [stdout] 2160 +             _ => todo!(),
[INFO] [stdout] 2161 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Queue` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2181:15
[INFO] [stdout]      |
[INFO] [stdout] 2181 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Queue` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:51:5
[INFO] [stdout]      |
[INFO] [stdout]   51 |     Queue => rhi_vulkan::VulkanQueue, rhi_d3d12::D3d12Queue, rhi_metal::MetalQueue);
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Queue`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2181 ~         match self {
[INFO] [stdout] 2182 +             _ => todo!(),
[INFO] [stdout] 2183 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&ComputeQueue, &CommandBuffer, &Semaphore)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2197:15
[INFO] [stdout]      |
[INFO] [stdout] 2197 |         match (self, cmd, signal) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&ComputeQueue, &CommandBuffer, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2197 ~         match (self, cmd, signal) {
[INFO] [stdout] 2198 +             _ => todo!(),
[INFO] [stdout] 2199 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&ComputeQueue, &CommandBuffer, &Semaphore, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2218:15
[INFO] [stdout]      |
[INFO] [stdout] 2218 |         match (self, cmd, signal, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&ComputeQueue, &CommandBuffer, &Semaphore, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2218 ~         match (self, cmd, signal, fence) {
[INFO] [stdout] 2219 +             _ => todo!(),
[INFO] [stdout] 2220 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Fence` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2239:15
[INFO] [stdout]      |
[INFO] [stdout] 2239 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Fence` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:65:5
[INFO] [stdout]      |
[INFO] [stdout]   65 |     Fence => rhi_vulkan::VulkanFence, rhi_d3d12::D3d12Fence, rhi_metal::MetalFence);
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Fence`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2239 ~         match self {
[INFO] [stdout] 2240 +             _ => todo!(),
[INFO] [stdout] 2241 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Fence` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:2250:15
[INFO] [stdout]      |
[INFO] [stdout] 2250 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Fence` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:65:5
[INFO] [stdout]      |
[INFO] [stdout]   65 |     Fence => rhi_vulkan::VulkanFence, rhi_d3d12::D3d12Fence, rhi_metal::MetalFence);
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Fence`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 2250 ~         match self {
[INFO] [stdout] 2251 +             _ => todo!(),
[INFO] [stdout] 2252 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rhi` (lib) due to 135 previous errors
[INFO] running `Command { std: "docker" "inspect" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5", kill_on_drop: false }`
[INFO] [stdout] 0e581c546e73941d7ba6ec1f7d808ee5ff92aeeabcf606e00f09d901434063d5
