[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 try#b66808126f24f2f30898306a881e1676824ea80c for pr-133502-23
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanspointes%2Fbevy-wasm-api" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/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-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sanspointes/bevy-wasm-api on toolchain b66808126f24f2f30898306a881e1676824ea80c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b66808126f24f2f30898306a881e1676824ea80c" "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" "+b66808126f24f2f30898306a881e1676824ea80c" "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-1-tc2/source/examples/vite-app/bevy-app/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43
[INFO] running `Command { std: "docker" "start" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43", 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" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43" "/opt/rustwide/cargo-home/bin/cargo" "+b66808126f24f2f30898306a881e1676824ea80c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43" "/opt/rustwide/cargo-home/bin/cargo" "+b66808126f24f2f30898306a881e1676824ea80c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", 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 serde v1.0.197
[INFO] [stderr]    Compiling libc v0.2.153
[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 zerocopy v0.7.32
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling toml_datetime v0.6.6
[INFO] [stderr]    Compiling winnow v0.6.13
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking concurrent-queue v2.4.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking event-listener v5.1.0
[INFO] [stderr]    Compiling indexmap v2.2.3
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]    Compiling syn v2.0.50
[INFO] [stderr]     Checking smol_str v0.2.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.0
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]     Checking futures-lite v2.2.0
[INFO] [stderr]     Checking async-task v4.7.0
[INFO] [stderr]    Compiling uuid v1.7.0
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking fixedbitset v0.4.2
[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]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]     Checking libloading v0.8.1
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking event-listener v4.0.3
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking async-executor v1.11.0
[INFO] [stderr]     Checking unicode-width v0.1.11
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking event-listener-strategy v0.4.0
[INFO] [stderr]     Checking bevy_tasks v0.14.0
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.11
[INFO] [stderr]     Checking unicode-xid v0.2.4
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]    Compiling cc v1.0.88
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling toml_edit v0.22.15
[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]     Checking accesskit v0.14.0
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.92
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]    Compiling wgpu-core v0.21.1
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]     Checking constant_time_eq v0.3.0
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]    Compiling blake3 v1.5.0
[INFO] [stderr]     Checking fdeflate v0.3.4
[INFO] [stderr]    Compiling wgpu v0.20.1
[INFO] [stderr]    Compiling bumpalo v3.15.3
[INFO] [stderr]     Checking const_panic v0.2.8
[INFO] [stderr]     Checking const_soft_float v0.1.4
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking sysinfo v0.30.12
[INFO] [stderr]     Checking data-encoding v2.5.0
[INFO] [stderr]     Checking const-fnv1a-hash v1.1.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking ruzstd v0.7.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[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 ryu v1.0.17
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking radsort v0.1.0
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[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]     Checking euclid v0.22.9
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking svg_fmt v0.4.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]    Compiling winit v0.30.3
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.92
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking xkeysym v0.2.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking rectangle-pack v0.4.2
[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]     Checking bytemuck v1.14.3
[INFO] [stderr]    Compiling bevy_derive v0.14.0
[INFO] [stderr]    Compiling bevy_asset_macros v0.14.0
[INFO] [stderr]    Compiling encase_derive v0.8.0
[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]    Compiling wasm-bindgen-macro v0.2.92
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking blocking v1.5.1
[INFO] [stderr]     Checking async-fs v2.1.2
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking owned_ttf_parser v0.20.0
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking js-sys v0.3.69
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling gltf-derive v1.4.0
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking ab_glyph v0.2.23
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]    Compiling gilrs v0.10.4
[INFO] [stderr]     Checking dpi v0.1.1
[INFO] [stderr]     Checking cursor-icon v1.1.0
[INFO] [stderr]     Checking xi-unicode v0.3.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_state_macros v0.14.0
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.14.0
[INFO] [stderr]     Checking taffy v0.5.2
[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 futures 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 glob v0.3.1
[INFO] [stderr]     Checking wasm-bindgen-test v0.3.41
[INFO] [stderr]     Checking bitflags v2.6.0
[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 bevy_utils v0.14.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking wgpu-types v0.20.0
[INFO] [stderr]     Checking petgraph v0.6.4
[INFO] [stderr]     Checking naga v0.20.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking bevy_reflect v0.14.0
[INFO] [stderr]     Checking encase v0.8.0
[INFO] [stderr]     Checking hexasphere v12.0.0
[INFO] [stderr]     Checking bevy_mikktspace v0.14.0
[INFO] [stderr]     Checking alsa v0.9.0
[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 rodio v0.18.1
[INFO] [stderr]     Checking basic-toml v0.1.8
[INFO] [stderr]     Checking tsify v0.4.5
[INFO] [stderr]     Checking polling v3.7.0
[INFO] [stderr]     Checking x11rb v0.13.1
[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 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_a11y v0.14.0
[INFO] [stderr]     Checking bevy_time v0.14.0
[INFO] [stderr]     Checking bevy_asset v0.14.0
[INFO] [stderr]     Checking bevy_input v0.14.0
[INFO] [stderr]     Checking bevy_log 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_scene v0.14.0
[INFO] [stderr]     Checking bevy_animation 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::<Entity>().iter(world).len()
[INFO] [stdout]     }
[INFO] [stdout]     pub fn get_entities(world: &mut World) -> Vec<Entity> {
[INFO] [stdout]         let result: Vec<_> = world
[INFO] [stdout]             .query_filtered::<Entity, With<Name>>()
[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<bool, String> {
[INFO] [stdout]         let mut name_component = world
[INFO] [stdout]             .get_mut::<Name>(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<String> {
[INFO] [stdout]         world.get::<Name>(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<bool, String> {
[INFO] [stdout]         let mut transform = world
[INFO] [stdout]             .get_mut::<Transform>(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::<Transform>(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<Assets<Mesh>>, ResMut<Assets<ColorMaterial>>),
[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] 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::<Entity>().iter(world).len()
[INFO] [stdout]     }
[INFO] [stdout]     pub fn get_entities(world: &mut World) -> Vec<Entity> {
[INFO] [stdout]         let result: Vec<_> = world
[INFO] [stdout]             .query_filtered::<Entity, With<Name>>()
[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<bool, String> {
[INFO] [stdout]         let mut name_component = world
[INFO] [stdout]             .get_mut::<Name>(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<String> {
[INFO] [stdout]         world.get::<Name>(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<bool, String> {
[INFO] [stdout]         let mut transform = world
[INFO] [stdout]             .get_mut::<Transform>(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::<Transform>(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<Assets<Mesh>>, ResMut<Assets<ColorMaterial>>),
[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<number>;\n\tget_entities(): Promise<Entity[]>;\n\tset_entity_name(entity: number, name: string): Promise<boolean>;\n\tget_entity_name(entity: number): Promise<string|undefined>;\n\tset_entity_position(entity: number, x: number, y: number, z: number): Promise<boolean>;\n\tget_entity_position(entity: number): Promise<[number, number, number]|undefined>;\n\tspawn_circle(x: number, y: number, z: number): Promise<Entity>;\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::<Result<Vec<_>, 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] #[allow(dead_code)]
[INFO] [stdout] impl MyApi {
[INFO] [stdout]     pub fn count_entites(world: &mut World) -> usize {
[INFO] [stdout]         world.query::<Entity>().iter(world).len()
[INFO] [stdout]     }
[INFO] [stdout]     pub fn get_entities(world: &mut World) -> Vec<Entity> {
[INFO] [stdout]         let result: Vec<_> = world
[INFO] [stdout]             .query_filtered::<Entity, With<Name>>()
[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<bool, String> {
[INFO] [stdout]         let mut name_component = world
[INFO] [stdout]             .get_mut::<Name>(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<String> {
[INFO] [stdout]         world.get::<Name>(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<bool, String> {
[INFO] [stdout]         let mut transform = world
[INFO] [stdout]             .get_mut::<Transform>(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::<Transform>(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<Assets<Mesh>>, ResMut<Assets<ColorMaterial>>),
[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 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 output:
[INFO] [stdout] #[allow(dead_code)]
[INFO] [stdout] impl MyApi {
[INFO] [stdout]     pub fn count_entites(world: &mut World) -> usize {
[INFO] [stdout]         world.query::<Entity>().iter(world).len()
[INFO] [stdout]     }
[INFO] [stdout]     pub fn get_entities(world: &mut World) -> Vec<Entity> {
[INFO] [stdout]         let result: Vec<_> = world
[INFO] [stdout]             .query_filtered::<Entity, With<Name>>()
[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<bool, String> {
[INFO] [stdout]         let mut name_component = world
[INFO] [stdout]             .get_mut::<Name>(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<String> {
[INFO] [stdout]         world.get::<Name>(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<bool, String> {
[INFO] [stdout]         let mut transform = world
[INFO] [stdout]             .get_mut::<Transform>(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::<Transform>(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<Assets<Mesh>>, ResMut<Assets<ColorMaterial>>),
[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<number>;\n\tget_entities(): Promise<Entity[]>;\n\tset_entity_name(entity: number, name: string): Promise<boolean>;\n\tget_entity_name(entity: number): Promise<string|undefined>;\n\tset_entity_position(entity: number, x: number, y: number, z: number): Promise<boolean>;\n\tget_entity_position(entity: number): Promise<[number, number, number]|undefined>;\n\tspawn_circle(x: number, y: number, z: number): Promise<Entity>;\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::<Result<Vec<_>, 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] 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] error[E0277]: the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> examples/wasm-app/src/lib.rs:18:36
[INFO] [stdout]    |
[INFO] [stdout] 18 |             resolution: (10., 10.).into(),
[INFO] [stdout]    |                                    ^^^^ the trait `From<f64>` is not implemented for `f32`
[INFO] [stdout]    |
[INFO] [stdout]    = help: `f32` implements trait `From<T>`:
[INFO] [stdout]              From<AspectRatio>
[INFO] [stdout]              From<bool>
[INFO] [stdout]              From<dpi::LogicalUnit<P>>
[INFO] [stdout]              From<dpi::PhysicalUnit<P>>
[INFO] [stdout]              From<f16>
[INFO] [stdout]              From<i16>
[INFO] [stdout]              From<i8>
[INFO] [stdout]              From<u16>
[INFO] [stdout]              From<u8>
[INFO] [stdout]    = note: required for `f64` to implement `Into<f32>`
[INFO] [stdout]    = note: required for `WindowResolution` to implement `From<(f64, f64)>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `(f64, f64)` to implement `Into<WindowResolution>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> examples/vite-app/bevy-app/src/lib.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |             resolution: (10., 10.).into(),
[INFO] [stdout]    |                                    ^^^^ the trait `From<f64>` is not implemented for `f32`
[INFO] [stdout]    |
[INFO] [stdout]    = help: `f32` implements trait `From<T>`:
[INFO] [stdout]              From<AspectRatio>
[INFO] [stdout]              From<bool>
[INFO] [stdout]              From<dpi::LogicalUnit<P>>
[INFO] [stdout]              From<dpi::PhysicalUnit<P>>
[INFO] [stdout]              From<f16>
[INFO] [stdout]              From<i16>
[INFO] [stdout]              From<i8>
[INFO] [stdout]              From<u16>
[INFO] [stdout]              From<u8>
[INFO] [stdout]    = note: required for `f64` to implement `Into<f32>`
[INFO] [stdout]    = note: required for `WindowResolution` to implement `From<(f64, f64)>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `(f64, f64)` to implement `Into<WindowResolution>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `wasm-app` (lib test) due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> examples/wasm-app/src/lib.rs:18:36
[INFO] [stdout]    |
[INFO] [stdout] 18 |             resolution: (10., 10.).into(),
[INFO] [stdout]    |                                    ^^^^ the trait `From<f64>` is not implemented for `f32`
[INFO] [stdout]    |
[INFO] [stdout]    = help: `f32` implements trait `From<T>`:
[INFO] [stdout]              From<AspectRatio>
[INFO] [stdout]              From<bool>
[INFO] [stdout]              From<dpi::LogicalUnit<P>>
[INFO] [stdout]              From<dpi::PhysicalUnit<P>>
[INFO] [stdout]              From<f16>
[INFO] [stdout]              From<i16>
[INFO] [stdout]              From<i8>
[INFO] [stdout]              From<u16>
[INFO] [stdout]              From<u8>
[INFO] [stdout]    = note: required for `f64` to implement `Into<f32>`
[INFO] [stdout]    = note: required for `WindowResolution` to implement `From<(f64, f64)>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `(f64, f64)` to implement `Into<WindowResolution>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> examples/vite-app/bevy-app/src/lib.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |             resolution: (10., 10.).into(),
[INFO] [stdout]    |                                    ^^^^ the trait `From<f64>` is not implemented for `f32`
[INFO] [stdout]    |
[INFO] [stdout]    = help: `f32` implements trait `From<T>`:
[INFO] [stdout]              From<AspectRatio>
[INFO] [stdout]              From<bool>
[INFO] [stdout]              From<dpi::LogicalUnit<P>>
[INFO] [stdout]              From<dpi::PhysicalUnit<P>>
[INFO] [stdout]              From<f16>
[INFO] [stdout]              From<i16>
[INFO] [stdout]              From<i8>
[INFO] [stdout]              From<u16>
[INFO] [stdout]              From<u8>
[INFO] [stdout]    = note: required for `f64` to implement `Into<f32>`
[INFO] [stdout]    = note: required for `WindowResolution` to implement `From<(f64, f64)>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `(f64, f64)` to implement `Into<WindowResolution>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bevy-app` (lib) due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `wasm-app` (lib) due to 1 previous error; 1 warning emitted
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bevy-app` (lib test) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43", kill_on_drop: false }`
[INFO] [stdout] b5d757d31ad7e5c95265d6c293d30b1d09a490a0f819355f49483627fb919d43
