web-assembler 0.1.2

An in memory wasm assembler for Rust.
Documentation
Build #2208981 2025-06-08 12:51:59
# rustc version
rustc 1.89.0-nightly (cdd545be1 2025-06-07)# docs.rs version
docsrs 0.6.0 (d2911047 2025-05-28)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/web-assembler-0.1.2/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/web-assembler-0.1.2/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250607-1.89.0-nightly-cdd545be1\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu" "--config" "build.rustdocflags=[\"-Zmetrics-dir=/opt/rustwide/target/metrics\"]", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 7cc8532c59f827eea4851254edabe12d4c1efabe4b28ffa5e275660de82383f2
[INFO] running `Command { std: "docker" "start" "-a" "7cc8532c59f827eea4851254edabe12d4c1efabe4b28ffa5e275660de82383f2", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:73:9
[INFO] [stderr]    |
[INFO] [stderr] 73 |         do_section!(0x01, self.types);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |         do_section!(0x02, self.imports);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |         do_section!(0x03, self.functions);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 |         do_section!(0x04, self.tables);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 77 |         do_section!(0x05, self.memories);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 |         do_section!(0x06, self.globals);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 79 |         do_section!(0x07, self.exports);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:81:26
[INFO] [stderr]    |
[INFO] [stderr] 81 |             for index in self.start {
[INFO] [stderr]    |                          ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 81 -             for index in self.start {
[INFO] [stderr] 81 +             while let Some(index) = self.start {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 81 -             for index in self.start {
[INFO] [stderr] 81 +             if let Some(index) = self.start {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |         do_section!(0x09, self.elements);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |         do_section!(0x0a, self.codes);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/module.rs:94:9
[INFO] [stderr]    |
[INFO] [stderr] 94 |         do_section!(0x0b, self.data);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 while let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 56 -                 for xs in field {
[INFO] [stderr] 56 +                 if let Some() =  in field {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/types.rs:103:20
[INFO] [stderr]     |
[INFO] [stderr] 103 |         for ret in ret {
[INFO] [stderr]     |                    ^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 103 -         for ret in ret {
[INFO] [stderr] 103 +         while let Some(ret) = ret {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 103 -         for ret in ret {
[INFO] [stderr] 103 +         if let Some(ret) = ret {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/ops.rs:320:47
[INFO] [stderr]     |
[INFO] [stderr] 320 |                     size += write_uint32(buf, ::std::mem::transmute::<f32, u32>(*f));
[INFO] [stderr]     |                                               ---------------------------------^^^^
[INFO] [stderr]     |                                               |
[INFO] [stderr]     |                                               help: replace this with: `f32::to_bits`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/ops.rs:326:47
[INFO] [stderr]     |
[INFO] [stderr] 326 |                     size += write_uint64(buf, ::std::mem::transmute::<f64, u64>(*f));
[INFO] [stderr]     |                                               ---------------------------------^^^^
[INFO] [stderr]     |                                               |
[INFO] [stderr]     |                                               help: replace this with: `f64::to_bits`
[INFO] [stderr] 
[INFO] [stderr] warning: `web-assembler` (lib) generated 14 warnings (run `cargo fix --lib -p web-assembler` to apply 2 suggestions)
[INFO] [stderr]     Scraping web-assembler v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]  Documenting web-assembler v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.75s
[INFO] [stderr]    Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/web_assembler/index.html
[INFO] running `Command { std: "docker" "inspect" "7cc8532c59f827eea4851254edabe12d4c1efabe4b28ffa5e275660de82383f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7cc8532c59f827eea4851254edabe12d4c1efabe4b28ffa5e275660de82383f2", kill_on_drop: false }`
[INFO] [stdout] 7cc8532c59f827eea4851254edabe12d4c1efabe4b28ffa5e275660de82383f2