[INFO] cloning repository https://github.com/sanspointes/bevy-wasm-api [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sanspointes/bevy-wasm-api" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanspointes%2Fbevy-wasm-api", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanspointes%2Fbevy-wasm-api'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2dfeb77248e476384d2115b6cc6764ddaceb804d [INFO] checking sanspointes/bevy-wasm-api against master#d1ed52b1f5b78bf66127b670af813b84d57aeedb for pr-146562-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanspointes%2Fbevy-wasm-api" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/sanspointes/bevy-wasm-api [INFO] finished tweaking git repo https://github.com/sanspointes/bevy-wasm-api [INFO] tweaked toml for git repo https://github.com/sanspointes/bevy-wasm-api written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sanspointes/bevy-wasm-api on toolchain d1ed52b1f5b78bf66127b670af813b84d57aeedb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d1ed52b1f5b78bf66127b670af813b84d57aeedb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/sanspointes/bevy-wasm-api 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" "+d1ed52b1f5b78bf66127b670af813b84d57aeedb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /workspace/builds/worker-7-tc1/source/examples/vite-app/bevy-app/Cargo.toml [INFO] [stderr] workspace: /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded proc-macro2 v1.0.78 [INFO] [stderr] Downloaded tsify-macros v0.4.5 [INFO] [stderr] Downloaded wasm-bindgen-test v0.3.41 [INFO] [stderr] Downloaded wasm-bindgen-test-macro v0.3.41 [INFO] [stderr] Downloaded bevy_a11y v0.14.0 [INFO] [stderr] Downloaded serde_derive_internals v0.28.0 [INFO] [stderr] Downloaded tsify v0.4.5 [INFO] [stderr] Downloaded walkdir v2.4.0 [INFO] [stderr] Downloaded bevy_state v0.14.0 [INFO] [stderr] Downloaded log v0.4.20 [INFO] [stderr] Downloaded io-kit-sys v0.4.0 [INFO] [stderr] Downloaded bevy_render_macros v0.14.0 [INFO] [stderr] Downloaded serde-wasm-bindgen v0.5.0 [INFO] [stderr] Downloaded bevy_audio v0.14.0 [INFO] [stderr] Downloaded gilrs-core v0.5.10 [INFO] [stderr] Downloaded ruzstd v0.7.0 [INFO] [stderr] Downloaded gilrs v0.10.4 [INFO] [stderr] Downloaded blake3 v1.5.0 [INFO] [stderr] Downloaded aho-corasick v1.1.2 [INFO] [stderr] Downloaded winnow v0.6.13 [INFO] [stderr] Downloaded syn v2.0.50 [INFO] [stderr] Downloaded bevy_ui v0.14.0 [INFO] [stderr] Downloaded indexmap v2.2.3 [INFO] [stderr] Downloaded bevy_asset v0.14.0 [INFO] [stderr] Downloaded nix v0.27.1 [INFO] [stderr] Downloaded regex-syntax v0.8.2 [INFO] [stderr] Downloaded petgraph v0.6.4 [INFO] [stderr] Downloaded bevy_render v0.14.0 [INFO] [stderr] Downloaded bevy_pbr v0.14.0 [INFO] [stderr] Downloaded serde_json v1.0.114 [INFO] [stderr] Downloaded bevy_math v0.14.0 [INFO] [stderr] Downloaded bevy_reflect v0.14.0 [INFO] [stderr] Downloaded memchr v2.7.1 [INFO] [stderr] Downloaded toml_edit v0.22.15 [INFO] [stderr] Downloaded gltf v1.4.0 [INFO] [stderr] Downloaded bevy_gltf v0.14.0 [INFO] [stderr] Downloaded regex v1.10.3 [INFO] [stderr] Downloaded winit v0.30.3 [INFO] [stderr] Downloaded bevy v0.14.0 [INFO] [stderr] Downloaded euclid v0.22.9 [INFO] [stderr] Downloaded bevy_sprite v0.14.0 [INFO] [stderr] Downloaded bevy_input v0.14.0 [INFO] [stderr] Downloaded bevy_core_pipeline v0.14.0 [INFO] [stderr] Downloaded bevy_ecs v0.14.0 [INFO] [stderr] Downloaded crossbeam-channel v0.5.11 [INFO] [stderr] Downloaded cc v1.0.88 [INFO] [stderr] Downloaded bytes v1.5.0 [INFO] [stderr] Downloaded uuid v1.7.0 [INFO] [stderr] Downloaded bevy_tasks v0.14.0 [INFO] [stderr] Downloaded ahash v0.8.9 [INFO] [stderr] Downloaded pin-project-lite v0.2.13 [INFO] [stderr] Downloaded autocfg v1.1.0 [INFO] [stderr] Downloaded basic-toml v0.1.8 [INFO] [stderr] Downloaded trybuild v1.0.89 [INFO] [stderr] Downloaded bumpalo v3.15.3 [INFO] [stderr] Downloaded regex-automata v0.4.5 [INFO] [stderr] Downloaded bevy_animation v0.14.0 [INFO] [stderr] Downloaded bevy_scene v0.14.0 [INFO] [stderr] Downloaded bevy_transform v0.14.0 [INFO] [stderr] Downloaded bevy_hierarchy v0.14.0 [INFO] [stderr] Downloaded bevy_time v0.14.0 [INFO] [stderr] Downloaded bevy_log v0.14.0 [INFO] [stderr] Downloaded bevy_window v0.14.0 [INFO] [stderr] Downloaded libloading v0.8.1 [INFO] [stderr] Downloaded bevy_winit v0.14.0 [INFO] [stderr] Downloaded prettyplease v0.2.16 [INFO] [stderr] Downloaded bevy_app v0.14.0 [INFO] [stderr] Downloaded erased-serde v0.4.3 [INFO] [stderr] Downloaded bytemuck v1.14.3 [INFO] [stderr] Downloaded smallvec v1.13.1 [INFO] [stderr] Downloaded event-listener v5.1.0 [INFO] [stderr] Downloaded fastrand v2.0.1 [INFO] [stderr] Downloaded bevy_utils_proc_macros v0.14.0 [INFO] [stderr] Downloaded itoa v1.0.10 [INFO] [stderr] Downloaded bevy_gilrs v0.14.0 [INFO] [stderr] Downloaded bevy_gizmos_macros v0.14.0 [INFO] [stderr] Downloaded bevy_gizmos v0.14.0 [INFO] [stderr] Downloaded gltf-derive v1.4.0 [INFO] [stderr] Downloaded gltf-json v1.4.0 [INFO] [stderr] Downloaded bevy_state_macros v0.14.0 [INFO] [stderr] Downloaded bevy_asset_macros v0.14.0 [INFO] [stderr] Downloaded bevy_color v0.14.1 [INFO] [stderr] Downloaded bevy_diagnostic v0.14.0 [INFO] [stderr] Downloaded bevy_encase_derive v0.14.0 [INFO] [stderr] Downloaded svg_fmt v0.4.1 [INFO] [stderr] Downloaded bevy_internal v0.14.0 [INFO] [stderr] Downloaded bevy_derive v0.14.0 [INFO] [stderr] Downloaded bevy_reflect_derive v0.14.0 [INFO] [stderr] Downloaded bytemuck_derive v1.5.0 [INFO] [stderr] Downloaded futures-lite v2.2.0 [INFO] [stderr] Downloaded bevy_mikktspace v0.14.0 [INFO] [stderr] Downloaded bevy_text v0.14.0 [INFO] [stderr] Downloaded bevy_core v0.14.0 [INFO] [stderr] Downloaded bevy_ptr v0.14.0 [INFO] [stderr] Downloaded bevy_macro_utils v0.14.0 [INFO] [stderr] Downloaded bevy_utils v0.14.0 [INFO] [stderr] Downloaded bevy_ecs_macros v0.14.0 [INFO] [stderr] Downloaded serde-wasm-bindgen v0.6.4 [INFO] [stderr] Downloaded image v0.25.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d1ed52b1f5b78bf66127b670af813b84d57aeedb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ded2f83c625b347cf10c3ac533ffcf163fb78e6592256b5fd94b4952cbec164f [INFO] running `Command { std: "docker" "start" "-a" "ded2f83c625b347cf10c3ac533ffcf163fb78e6592256b5fd94b4952cbec164f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ded2f83c625b347cf10c3ac533ffcf163fb78e6592256b5fd94b4952cbec164f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ded2f83c625b347cf10c3ac533ffcf163fb78e6592256b5fd94b4952cbec164f", kill_on_drop: false }` [INFO] [stdout] ded2f83c625b347cf10c3ac533ffcf163fb78e6592256b5fd94b4952cbec164f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d1ed52b1f5b78bf66127b670af813b84d57aeedb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8289e505ba313f64acd2a3af0ec32d6ba74900dccbafd51bc8c1269be0d67d05 [INFO] running `Command { std: "docker" "start" "-a" "8289e505ba313f64acd2a3af0ec32d6ba74900dccbafd51bc8c1269be0d67d05", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/examples/vite-app/bevy-app/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Compiling ahash v0.8.9 [INFO] [stderr] Compiling thiserror v1.0.62 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling indexmap v2.2.3 [INFO] [stderr] Checking allocator-api2 v0.2.16 [INFO] [stderr] Compiling winnow v0.6.13 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking smallvec v1.13.1 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking fastrand v2.0.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking concurrent-queue v2.4.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking event-listener v5.1.0 [INFO] [stderr] Compiling syn v2.0.50 [INFO] [stderr] Checking event-listener-strategy v0.5.0 [INFO] [stderr] Checking futures-lite v2.2.0 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking async-channel v2.2.0 [INFO] [stderr] Checking bevy_ptr v0.14.0 [INFO] [stderr] Checking nonmax v0.5.5 [INFO] [stderr] Checking fixedbitset v0.5.7 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking unicode-ident v1.0.12 [INFO] [stderr] Checking libloading v0.8.1 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Compiling uuid v1.7.0 [INFO] [stderr] Checking async-executor v1.11.0 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking event-listener v4.0.3 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Compiling toml_edit v0.22.15 [INFO] [stderr] Checking bevy_tasks v0.14.0 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking event-listener-strategy v0.4.0 [INFO] [stderr] Checking crossbeam-channel v0.5.11 [INFO] [stderr] Checking hexf-parse v0.2.1 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Compiling cc v1.0.88 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Compiling khronos-egl v6.0.0 [INFO] [stderr] Compiling ash v0.37.3+1.3.251 [INFO] [stderr] Checking piper v0.2.1 [INFO] [stderr] Checking async-lock v3.3.0 [INFO] [stderr] Compiling wgpu-hal v0.21.1 [INFO] [stderr] Checking libloading v0.7.4 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.92 [INFO] [stderr] Checking accesskit v0.14.0 [INFO] [stderr] Compiling wgpu-core v0.21.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking renderdoc-sys v1.1.0 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Compiling blake3 v1.5.0 [INFO] [stderr] Checking profiling v1.0.15 [INFO] [stderr] Checking constant_time_eq v0.3.0 [INFO] [stderr] Compiling document-features v0.2.10 [INFO] [stderr] Compiling wgpu v0.20.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking const_panic v0.2.8 [INFO] [stderr] Checking regex-automata v0.4.5 [INFO] [stderr] Checking const_soft_float v0.1.4 [INFO] [stderr] Compiling bumpalo v3.15.3 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking sysinfo v0.30.12 [INFO] [stderr] Checking constgebra v0.1.4 [INFO] [stderr] Compiling bevy_macro_utils v0.14.0 [INFO] [stderr] Compiling encase_derive_impl v0.8.0 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.92 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking const-fnv1a-hash v1.1.0 [INFO] [stderr] Checking ruzstd v0.7.0 [INFO] [stderr] Checking ktx2 v0.3.0 [INFO] [stderr] Compiling wasm-bindgen v0.2.92 [INFO] [stderr] Compiling prettyplease v0.2.16 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling serde_json v1.0.114 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking radsort v0.1.0 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking euclid v0.22.9 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.92 [INFO] [stderr] Checking regex v1.10.3 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Compiling thiserror-impl v1.0.62 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling bytemuck_derive v1.5.0 [INFO] [stderr] Compiling bevy_utils_proc_macros v0.14.0 [INFO] [stderr] Compiling bevy_reflect_derive v0.14.0 [INFO] [stderr] Compiling bevy_ecs_macros v0.14.0 [INFO] [stderr] Compiling bevy_derive v0.14.0 [INFO] [stderr] Checking bytemuck v1.14.3 [INFO] [stderr] Compiling bevy_asset_macros v0.14.0 [INFO] [stderr] Compiling encase_derive v0.8.0 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking image v0.25.1 [INFO] [stderr] Compiling bevy_render_macros v0.14.0 [INFO] [stderr] Compiling bevy_encase_derive v0.14.0 [INFO] [stderr] Checking blocking v1.5.1 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.92 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking svg_fmt v0.4.1 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Checking guillotiere v0.6.2 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Compiling winit v0.30.3 [INFO] [stderr] Checking js-sys v0.3.69 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking serde v1.0.197 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Checking rectangle-pack v0.4.2 [INFO] [stderr] Compiling inflections v1.1.1 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling gltf-derive v1.4.0 [INFO] [stderr] Checking inotify v0.10.2 [INFO] [stderr] Checking ogg v0.8.0 [INFO] [stderr] Checking dpi v0.1.1 [INFO] [stderr] Checking xi-unicode v0.3.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Compiling gilrs v0.10.4 [INFO] [stderr] Checking dasp_sample v0.11.0 [INFO] [stderr] Compiling bevy-wasm-api-macro-core v0.2.0 (/opt/rustwide/workdir/bevy-wasm-api-macro-core) [INFO] [stderr] Checking glyph_brush_layout v0.2.3 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking grid v0.14.0 [INFO] [stderr] Compiling bevy-wasm-api-macro v0.2.0 (/opt/rustwide/workdir/bevy-wasm-api-macro) [INFO] [stderr] Compiling bevy_gizmos_macros v0.14.0 [INFO] [stderr] Checking taffy v0.5.2 [INFO] [stderr] Compiling bevy_state_macros v0.14.0 [INFO] [stderr] Compiling serde_derive_internals v0.28.0 [INFO] [stderr] Checking wasm-bindgen-futures v0.4.42 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking console_error_panic_hook v0.1.7 [INFO] [stderr] Compiling trybuild v1.0.89 [INFO] [stderr] Compiling wasm-bindgen-test-macro v0.3.41 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking glam v0.27.0 [INFO] [stderr] Checking erased-serde v0.4.3 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking wgpu-types v0.20.0 [INFO] [stderr] Checking bevy_utils v0.14.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking petgraph v0.6.4 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking gpu-descriptor v0.3.0 [INFO] [stderr] Checking naga v0.20.0 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking nix v0.27.1 [INFO] [stderr] Checking alsa v0.9.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking gilrs-core v0.5.10 [INFO] [stderr] Checking gltf-json v1.4.0 [INFO] [stderr] Checking serde-wasm-bindgen v0.6.4 [INFO] [stderr] Compiling tsify-macros v0.4.5 [INFO] [stderr] Checking serde-wasm-bindgen v0.5.0 [INFO] [stderr] Checking bevy_reflect v0.14.0 [INFO] [stderr] Checking encase v0.8.0 [INFO] [stderr] Checking bevy_mikktspace v0.14.0 [INFO] [stderr] Checking hexasphere v12.0.0 [INFO] [stderr] Checking rodio v0.18.1 [INFO] [stderr] Checking tsify v0.4.5 [INFO] [stderr] Checking basic-toml v0.1.8 [INFO] [stderr] Checking wasm-bindgen-test v0.3.41 [INFO] [stderr] Checking polling v3.7.0 [INFO] [stderr] Checking gltf v1.4.0 [INFO] [stderr] Checking calloop v0.12.4 [INFO] [stderr] Checking bevy_ecs v0.14.0 [INFO] [stderr] Checking bevy_math v0.14.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking naga_oil v0.14.0 [INFO] [stderr] Checking bevy_color v0.14.1 [INFO] [stderr] Checking accesskit_winit v0.20.4 [INFO] [stderr] Checking bevy_app v0.14.0 [INFO] [stderr] Checking bevy_core v0.14.0 [INFO] [stderr] Checking bevy_time v0.14.0 [INFO] [stderr] Checking bevy_a11y v0.14.0 [INFO] [stderr] Checking bevy_asset v0.14.0 [INFO] [stderr] Checking bevy_log v0.14.0 [INFO] [stderr] Checking bevy_input v0.14.0 [INFO] [stderr] Checking bevy-wasm-api v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking bevy_window v0.14.0 [INFO] [stderr] Checking bevy_hierarchy v0.14.0 [INFO] [stderr] Checking bevy_diagnostic v0.14.0 [INFO] [stderr] Checking bevy_transform v0.14.0 [INFO] [stderr] Checking bevy_state v0.14.0 [INFO] [stderr] Checking bevy_gilrs v0.14.0 [INFO] [stderr] Checking bevy_winit v0.14.0 [INFO] [stderr] Checking bevy_render v0.14.0 [INFO] [stderr] Checking bevy_audio v0.14.0 [INFO] [stderr] Checking bevy_core_pipeline v0.14.0 [INFO] [stderr] Checking bevy_animation v0.14.0 [INFO] [stderr] Checking bevy_scene v0.14.0 [INFO] [stderr] Checking bevy_sprite v0.14.0 [INFO] [stderr] Checking bevy_pbr v0.14.0 [INFO] [stderr] Checking bevy_text v0.14.0 [INFO] [stderr] Checking bevy_ui v0.14.0 [INFO] [stderr] Checking bevy_gizmos v0.14.0 [INFO] [stderr] Checking bevy_gltf v0.14.0 [INFO] [stderr] Checking bevy_internal v0.14.0 [INFO] [stderr] Checking bevy v0.14.0 [INFO] [stderr] Checking bevy-app v0.1.0 (/opt/rustwide/workdir/examples/vite-app/bevy-app) [INFO] [stderr] Checking wasm-app v0.1.0 (/opt/rustwide/workdir/examples/wasm-app) [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api input: [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] todo!(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] bevy_wasm_api input attributes: [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api output: [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] todo!(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(typescript_custom_section)] [INFO] [stdout] const TS_APPEND_CONTENT: &'static str = "\nexport class MyApi {\n\tconstructor();\n\ttest(): Promise<[number, number]|undefined>;\n\tfree(): void;\n}\n"; [INFO] [stdout] #[wasm_bindgen(js_name = "MyApi", skip_typescript)] [INFO] [stdout] struct MyApiWasmApi; [INFO] [stdout] #[wasm_bindgen(js_class = "MyApi", skip_typescript)] [INFO] [stdout] impl MyApiWasmApi { [INFO] [stdout] #[wasm_bindgen(constructor)] [INFO] [stdout] pub fn new() -> Self { [INFO] [stdout] Self [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn test(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |_world| { [INFO] [stdout] let ret_val = MyApi::test(_world); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => { [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::JsArrayBuilder::new() [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.0)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.1)) [INFO] [stdout] .build_as_js_value(), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api input: [INFO] [stdout] #[allow(dead_code)] [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn count_entites(world: &mut World) -> usize { [INFO] [stdout] world.query::().iter(world).len() [INFO] [stdout] } [INFO] [stdout] pub fn get_entities(world: &mut World) -> Vec { [INFO] [stdout] let result: Vec<_> = world [INFO] [stdout] .query_filtered::>() [INFO] [stdout] .iter(world) [INFO] [stdout] .collect(); [INFO] [stdout] result [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut name_component = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] name_component.set(name); [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_name(world: &mut World, entity: u32) -> Option { [INFO] [stdout] world.get::(Entity::from_raw(entity)).map(|name| name.to_string()) [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut transform = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] transform.translation.x = x; [INFO] [stdout] transform.translation.y = y; [INFO] [stdout] transform.translation.z = z; [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> Option<(f32, f32, f32)> { [INFO] [stdout] let transform = world.get::(Entity::from_raw(entity)); [INFO] [stdout] transform [INFO] [stdout] .map(|transform| { [INFO] [stdout] let pos = transform.translation; [INFO] [stdout] (pos.x, pos.y, pos.z) [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] pub fn spawn_circle(world: &mut World, x: f32, y: f32, z: f32) -> Entity { [INFO] [stdout] let mut sys_state = SystemState::< [INFO] [stdout] (Commands, ResMut>, ResMut>), [INFO] [stdout] >::new(world); [INFO] [stdout] let (mut commands, mut meshes, mut materials) = sys_state.get_mut(world); [INFO] [stdout] let entity = commands [INFO] [stdout] .spawn(( [INFO] [stdout] MaterialMesh2dBundle { [INFO] [stdout] mesh: meshes.add(bevy::math::primitives::Circle::new(10.)).into(), [INFO] [stdout] material: materials [INFO] [stdout] .add(ColorMaterial::from(Color::srgb(1., 0., 0.))), [INFO] [stdout] transform: Transform::from_translation(Vec3::new(x, y, z)), [INFO] [stdout] ..default() [INFO] [stdout] }, [INFO] [stdout] Name::from("Circle"), [INFO] [stdout] )) [INFO] [stdout] .id(); [INFO] [stdout] sys_state.apply(world); [INFO] [stdout] entity [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] bevy_wasm_api input attributes: [INFO] [stdout] warning: unused imports: `ecs::system::SystemState` and `sprite::MaterialMesh2dBundle` [INFO] [stdout] --> examples/wasm-app/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use bevy::{ecs::system::SystemState, prelude::*, sprite::MaterialMesh2dBundle}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api input: [INFO] [stdout] START bevy_wasm_api output: [INFO] [stdout] #[allow(dead_code)] [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn count_entites(world: &mut World) -> usize { [INFO] [stdout] world.query::().iter(world).len() [INFO] [stdout] } [INFO] [stdout] pub fn get_entities(world: &mut World) -> Vec { [INFO] [stdout] let result: Vec<_> = world [INFO] [stdout] .query_filtered::>() [INFO] [stdout] .iter(world) [INFO] [stdout] .collect(); [INFO] [stdout] result [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut name_component = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] name_component.set(name); [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_name(world: &mut World, entity: u32) -> Option { [INFO] [stdout] world.get::(Entity::from_raw(entity)).map(|name| name.to_string()) [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut transform = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] transform.translation.x = x; [INFO] [stdout] transform.translation.y = y; [INFO] [stdout] transform.translation.z = z; [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> Option<(f32, f32, f32)> { [INFO] [stdout] let transform = world.get::(Entity::from_raw(entity)); [INFO] [stdout] transform [INFO] [stdout] .map(|transform| { [INFO] [stdout] #[allow(dead_code)] [INFO] [stdout] let pos = transform.translation; [INFO] [stdout] (pos.x, pos.y, pos.z) [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] pub fn spawn_circle(world: &mut World, x: f32, y: f32, z: f32) -> Entity { [INFO] [stdout] let mut sys_state = SystemState::< [INFO] [stdout] (Commands, ResMut>, ResMut>), [INFO] [stdout] >::new(world); [INFO] [stdout] let (mut commands, mut meshes, mut materials) = sys_state.get_mut(world); [INFO] [stdout] let entity = commands [INFO] [stdout] .spawn(( [INFO] [stdout] MaterialMesh2dBundle { [INFO] [stdout] mesh: meshes.add(bevy::math::primitives::Circle::new(10.)).into(), [INFO] [stdout] material: materials [INFO] [stdout] .add(ColorMaterial::from(Color::srgb(1., 0., 0.))), [INFO] [stdout] transform: Transform::from_translation(Vec3::new(x, y, z)), [INFO] [stdout] ..default() [INFO] [stdout] }, [INFO] [stdout] Name::from("Circle"), [INFO] [stdout] )) [INFO] [stdout] .id(); [INFO] [stdout] sys_state.apply(world); [INFO] [stdout] entity [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(typescript_custom_section)] [INFO] [stdout] const TS_APPEND_CONTENT: &'static str = "\nexport class MyApi {\n\tconstructor();\n\tcount_entites(): Promise;\n\tget_entities(): Promise;\n\tset_entity_name(entity: number, name: string): Promise;\n\tget_entity_name(entity: number): Promise;\n\tset_entity_position(entity: number, x: number, y: number, z: number): Promise;\n\tget_entity_position(entity: number): Promise<[number, number, number]|undefined>;\n\tspawn_circle(x: number, y: number, z: number): Promise;\n\tfree(): void;\n}\n"; [INFO] [stdout] #[wasm_bindgen(js_name = "MyApi", skip_typescript)] [INFO] [stdout] struct MyApiWasmApi; [INFO] [stdout] #[wasm_bindgen(js_class = "MyApi", skip_typescript)] [INFO] [stdout] impl MyApiWasmApi { [INFO] [stdout] #[wasm_bindgen(constructor)] [INFO] [stdout] pub fn new() -> Self { [INFO] [stdout] Self [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn count_entites(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::count_entites(world); [INFO] [stdout] Ok(wasm_bindgen::JsValue::from(ret_val)) [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entities(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entities(world); [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::vec_to_js_value( [INFO] [stdout] ret_val [INFO] [stdout] .into_iter() [INFO] [stdout] .map(|value| match serde_wasm_bindgen::to_value(&value) { [INFO] [stdout] Ok(js_value) => Ok(js_value), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new( [INFO] [stdout] format!("{reason}").as_str(), [INFO] [stdout] ); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] }) [INFO] [stdout] .collect::, wasm_bindgen::JsValue>>()?, [INFO] [stdout] ), [INFO] [stdout] ) [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::set_entity_name(world, entity, name); [INFO] [stdout] match ret_val { [INFO] [stdout] Ok(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entity_name( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entity_name(world, entity); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::set_entity_position(world, entity, x, y, z); [INFO] [stdout] match ret_val { [INFO] [stdout] Ok(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entity_position(world, entity); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => { [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::JsArrayBuilder::new() [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.0)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.1)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.2)) [INFO] [stdout] .build_as_js_value(), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn spawn_circle( [INFO] [stdout] &self, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::spawn_circle(world, x, y, z); [INFO] [stdout] match serde_wasm_bindgen::to_value(&ret_val) { [INFO] [stdout] Ok(js_value) => Ok(js_value), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn count_entites(world: &mut World) -> usize { [INFO] [stdout] world.query::().iter(world).len() [INFO] [stdout] } [INFO] [stdout] pub fn get_entities(world: &mut World) -> Vec { [INFO] [stdout] let result: Vec<_> = world [INFO] [stdout] .query_filtered::>() [INFO] [stdout] .iter(world) [INFO] [stdout] .collect(); [INFO] [stdout] result [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut name_component = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] name_component.set(name); [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_name(world: &mut World, entity: u32) -> Option { [INFO] [stdout] world.get::(Entity::from_raw(entity)).map(|name| name.to_string()) [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut transform = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] transform.translation.x = x; [INFO] [stdout] transform.translation.y = y; [INFO] [stdout] transform.translation.z = z; [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> Option<(f32, f32, f32)> { [INFO] [stdout] let transform = world.get::(Entity::from_raw(entity)); [INFO] [stdout] transform [INFO] [stdout] .map(|transform| { [INFO] [stdout] let pos = transform.translation; [INFO] [stdout] (pos.x, pos.y, pos.z) [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] pub fn spawn_circle(world: &mut World, x: f32, y: f32, z: f32) -> Entity { [INFO] [stdout] let mut sys_state = SystemState::< [INFO] [stdout] (Commands, ResMut>, ResMut>), [INFO] [stdout] >::new(world); [INFO] [stdout] let (mut commands, mut meshes, mut materials) = sys_state.get_mut(world); [INFO] [stdout] let entity = commands [INFO] [stdout] .spawn(( [INFO] [stdout] MaterialMesh2dBundle { [INFO] [stdout] mesh: meshes.add(bevy::math::primitives::Circle::new(10.)).into(), [INFO] [stdout] material: materials [INFO] [stdout] .add(ColorMaterial::from(Color::srgb(1., 0., 0.))), [INFO] [stdout] transform: Transform::from_translation(Vec3::new(x, y, z)), [INFO] [stdout] ..default() [INFO] [stdout] }, [INFO] [stdout] Name::from("Circle"), [INFO] [stdout] )) [INFO] [stdout] .id(); [INFO] [stdout] sys_state.apply(world); [INFO] [stdout] entity [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] bevy_wasm_api input attributes: [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api output: [INFO] [stdout] #[allow(dead_code)] [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn count_entites(world: &mut World) -> usize { [INFO] [stdout] world.query::().iter(world).len() [INFO] [stdout] } [INFO] [stdout] pub fn get_entities(world: &mut World) -> Vec { [INFO] [stdout] let result: Vec<_> = world [INFO] [stdout] .query_filtered::>() [INFO] [stdout] .iter(world) [INFO] [stdout] .collect(); [INFO] [stdout] result [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut name_component = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] name_component.set(name); [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_name(world: &mut World, entity: u32) -> Option { [INFO] [stdout] world.get::(Entity::from_raw(entity)).map(|name| name.to_string()) [INFO] [stdout] } [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> Result { [INFO] [stdout] let mut transform = world [INFO] [stdout] .get_mut::(Entity::from_raw(entity)) [INFO] [stdout] .ok_or("Could not find entity".to_string())?; [INFO] [stdout] transform.translation.x = x; [INFO] [stdout] transform.translation.y = y; [INFO] [stdout] transform.translation.z = z; [INFO] [stdout] Ok(true) [INFO] [stdout] } [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] world: &mut World, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> Option<(f32, f32, f32)> { [INFO] [stdout] let transform = world.get::(Entity::from_raw(entity)); [INFO] [stdout] transform [INFO] [stdout] .map(|transform| { [INFO] [stdout] let pos = transform.translation; [INFO] [stdout] (pos.x, pos.y, pos.z) [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] pub fn spawn_circle(world: &mut World, x: f32, y: f32, z: f32) -> Entity { [INFO] [stdout] let mut sys_state = SystemState::< [INFO] [stdout] (Commands, ResMut>, ResMut>), [INFO] [stdout] >::new(world); [INFO] [stdout] let (mut commands, mut meshes, mut materials) = sys_state.get_mut(world); [INFO] [stdout] let entity = commands [INFO] [stdout] .spawn(( [INFO] [stdout] MaterialMesh2dBundle { [INFO] [stdout] mesh: meshes.add(bevy::math::primitives::Circle::new(10.)).into(), [INFO] [stdout] material: materials [INFO] [stdout] .add(ColorMaterial::from(Color::srgb(1., 0., 0.))), [INFO] [stdout] transform: Transform::from_translation(Vec3::new(x, y, z)), [INFO] [stdout] ..default() [INFO] [stdout] }, [INFO] [stdout] Name::from("Circle"), [INFO] [stdout] )) [INFO] [stdout] .id(); [INFO] [stdout] sys_state.apply(world); [INFO] [stdout] entity [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(typescript_custom_section)] [INFO] [stdout] const TS_APPEND_CONTENT: &'static str = "\nexport class MyApi {\n\tconstructor();\n\tcount_entites(): Promise;\n\tget_entities(): Promise;\n\tset_entity_name(entity: number, name: string): Promise;\n\tget_entity_name(entity: number): Promise;\n\tset_entity_position(entity: number, x: number, y: number, z: number): Promise;\n\tget_entity_position(entity: number): Promise<[number, number, number]|undefined>;\n\tspawn_circle(x: number, y: number, z: number): Promise;\n\tfree(): void;\n}\n"; [INFO] [stdout] #[wasm_bindgen(js_name = "MyApi", skip_typescript)] [INFO] [stdout] struct MyApiWasmApi; [INFO] [stdout] #[wasm_bindgen(js_class = "MyApi", skip_typescript)] [INFO] [stdout] impl MyApiWasmApi { [INFO] [stdout] #[wasm_bindgen(constructor)] [INFO] [stdout] pub fn new() -> Self { [INFO] [stdout] Self [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn count_entites(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::count_entites(world); [INFO] [stdout] Ok(wasm_bindgen::JsValue::from(ret_val)) [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entities(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entities(world); [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::vec_to_js_value( [INFO] [stdout] ret_val [INFO] [stdout] .into_iter() [INFO] [stdout] .map(|value| match serde_wasm_bindgen::to_value(&value) { [INFO] [stdout] Ok(js_value) => Ok(js_value), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new( [INFO] [stdout] format!("{reason}").as_str(), [INFO] [stdout] ); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] }) [INFO] [stdout] .collect::, wasm_bindgen::JsValue>>()?, [INFO] [stdout] ), [INFO] [stdout] ) [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn set_entity_name( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] name: String, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::set_entity_name(world, entity, name); [INFO] [stdout] match ret_val { [INFO] [stdout] Ok(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entity_name( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entity_name(world, entity); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn set_entity_position( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::set_entity_position(world, entity, x, y, z); [INFO] [stdout] match ret_val { [INFO] [stdout] Ok(inner) => Ok(wasm_bindgen::JsValue::from(inner)), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn get_entity_position( [INFO] [stdout] &self, [INFO] [stdout] entity: u32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::get_entity_position(world, entity); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => { [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::JsArrayBuilder::new() [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.0)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.1)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.2)) [INFO] [stdout] .build_as_js_value(), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn spawn_circle( [INFO] [stdout] &self, [INFO] [stdout] x: f32, [INFO] [stdout] y: f32, [INFO] [stdout] z: f32, [INFO] [stdout] ) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |world| { [INFO] [stdout] let ret_val = MyApi::spawn_circle(world, x, y, z); [INFO] [stdout] match serde_wasm_bindgen::to_value(&ret_val) { [INFO] [stdout] Ok(js_value) => Ok(js_value), [INFO] [stdout] Err(reason) => { [INFO] [stdout] let error = js_sys::Error::new(format!("{reason}").as_str()); [INFO] [stdout] Err(wasm_bindgen::JsValue::from(error)) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api input: [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] todo!(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] bevy_wasm_api input attributes: [INFO] [stdout] [INFO] [stdout] START bevy_wasm_api output: [INFO] [stdout] impl MyApi { [INFO] [stdout] pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] todo!(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(typescript_custom_section)] [INFO] [stdout] const TS_APPEND_CONTENT: &'static str = "\nexport class MyApi {\n\tconstructor();\n\ttest(): Promise<[number, number]|undefined>;\n\tfree(): void;\n}\n"; [INFO] [stdout] #[wasm_bindgen(js_name = "MyApi", skip_typescript)] [INFO] [stdout] struct MyApiWasmApi; [INFO] [stdout] #[wasm_bindgen(js_class = "MyApi", skip_typescript)] [INFO] [stdout] impl MyApiWasmApi { [INFO] [stdout] #[wasm_bindgen(constructor)] [INFO] [stdout] pub fn new() -> Self { [INFO] [stdout] Self [INFO] [stdout] } [INFO] [stdout] #[wasm_bindgen(skip_typescript)] [INFO] [stdout] pub fn test(&self) -> bevy_wasm_api::reexports::js_sys::Promise { [INFO] [stdout] use bevy_wasm_api::reexports::*; [INFO] [stdout] wasm_bindgen_futures::future_to_promise( [INFO] [stdout] bevy_wasm_api::execute_in_world(move |_world| { [INFO] [stdout] let ret_val = MyApi::test(_world); [INFO] [stdout] match ret_val { [INFO] [stdout] Some(inner) => { [INFO] [stdout] Ok( [INFO] [stdout] bevy_wasm_api::convert::JsArrayBuilder::new() [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.0)) [INFO] [stdout] .with_js_value(&wasm_bindgen::JsValue::from(inner.1)) [INFO] [stdout] .build_as_js_value(), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] None => Ok(wasm_bindgen::JsValue::UNDEFINED), [INFO] [stdout] } [INFO] [stdout] }), [INFO] [stdout] ) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] END bevy_wasm_api output [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ecs::system::SystemState` and `sprite::MaterialMesh2dBundle` [INFO] [stdout] --> examples/wasm-app/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use bevy::{ecs::system::SystemState, prelude::*, sprite::MaterialMesh2dBundle}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyStruct` is never constructed [INFO] [stdout] --> examples/wasm-app/src/lib.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | struct MyStruct { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test` is never used [INFO] [stdout] --> examples/wasm-app/src/lib.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl MyApi { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 40 | pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyStruct` is never constructed [INFO] [stdout] --> examples/wasm-app/src/lib.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | struct MyStruct { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test` is never used [INFO] [stdout] --> examples/wasm-app/src/lib.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl MyApi { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 40 | pub fn test(_world: &mut World) -> Option<(i32, f32)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 58s [INFO] running `Command { std: "docker" "inspect" "8289e505ba313f64acd2a3af0ec32d6ba74900dccbafd51bc8c1269be0d67d05", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8289e505ba313f64acd2a3af0ec32d6ba74900dccbafd51bc8c1269be0d67d05", kill_on_drop: false }` [INFO] [stdout] 8289e505ba313f64acd2a3af0ec32d6ba74900dccbafd51bc8c1269be0d67d05