diff --git a/__wasm/deno_rust_wasm_qr_decode/Cargo.lock b/__wasm/deno_rust_wasm_qr_decode/Cargo.lock index 962ced3..f06a005 100644 --- a/__wasm/deno_rust_wasm_qr_decode/Cargo.lock +++ b/__wasm/deno_rust_wasm_qr_decode/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - [[package]] name = "adler" version = "1.0.2" @@ -23,6 +14,17 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -30,32 +32,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] -name = "backtrace" -version = "0.3.65" +name = "bit_field" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.5.3", - "object", - "rustc-demangle", -] - -[[package]] -name = "bardecoder" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b75cbf1b79d78acf0a6efeee9bea2b38e3bbaf84bac5319074eca0b2b135e3c" -dependencies = [ - "failure", - "failure_derive", - "image", - "log", - "newtype_derive", -] +checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" [[package]] name = "bitflags" @@ -81,12 +61,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" - [[package]] name = "cfg-if" version = "1.0.0" @@ -155,12 +129,11 @@ dependencies = [ [[package]] name = "deflate" -version = "0.8.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" dependencies = [ "adler32", - "byteorder", ] [[package]] @@ -170,25 +143,95 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] -name = "failure" -version = "0.1.8" +name = "exr" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "14cc0e06fb5f67e5d6beadf3a382fec9baca1aa751c6d5368fdeee7e5932c215" dependencies = [ - "backtrace", - "failure_derive", + "bit_field", + "deflate", + "flume", + "half", + "inflate", + "lebe", + "smallvec", + "threadpool", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "flate2" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "flume" +version = "0.10.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ceeb589a3157cac0ab8cc585feb749bd2cea5cb55a6ee802ad72d9fd38303da" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin", +] + +[[package]] +name = "futures-core" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" + +[[package]] +name = "futures-sink" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" + +[[package]] +name = "g2gen" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc100b16c63808c5c388cd23ff94c5a35cf28ea459f336323f7948a39480555" +dependencies = [ + "g2poly", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "g2p" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf09bc632629cbe5420b330e45bcc8f80403e74ba1027d213258914fd5c62755" +dependencies = [ + "g2gen", + "g2poly", +] + +[[package]] +name = "g2poly" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e837767888fca507f07e89c90e0b350da7bbb89170f67a4655dc9bdc4cca457b" + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", ] [[package]] @@ -202,10 +245,19 @@ dependencies = [ ] [[package]] -name = "gimli" -version = "0.26.1" +name = "half" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] [[package]] name = "hermit-abi" @@ -218,13 +270,14 @@ dependencies = [ [[package]] name = "image" -version = "0.23.14" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +checksum = "28edd9d7bc256be2502e325ac0628bde30b7001b9b52e0abe31a1a9dc2701212" dependencies = [ "bytemuck", "byteorder", "color_quant", + "exr", "gif", "jpeg-decoder", "num-iter", @@ -236,26 +289,66 @@ dependencies = [ ] [[package]] -name = "jpeg-decoder" -version = "0.1.22" +name = "inflate" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" +checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" +dependencies = [ + "adler32", +] + +[[package]] +name = "itoa" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" + +[[package]] +name = "jpeg-decoder" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b" dependencies = [ "rayon", ] +[[package]] +name = "js-sys" +version = "0.3.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff" + [[package]] name = "libc" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.17" @@ -266,10 +359,13 @@ dependencies = [ ] [[package]] -name = "memchr" -version = "2.5.0" +name = "lru" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "c84e6fe5655adc6ce00787cf7dcaf8dc4f998a0565d23eafc207a8b08ca3349a" +dependencies = [ + "hashbrown", +] [[package]] name = "memoffset" @@ -280,25 +376,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "miniz_oxide" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" -dependencies = [ - "adler32", -] - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - [[package]] name = "miniz_oxide" version = "0.5.3" @@ -309,12 +386,12 @@ dependencies = [ ] [[package]] -name = "newtype_derive" -version = "0.1.6" +name = "nanorand" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" dependencies = [ - "rustc_version", + "getrandom", ] [[package]] @@ -340,9 +417,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", "num-integer", @@ -368,15 +445,6 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.12.0" @@ -384,15 +452,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] -name = "png" -version = "0.16.8" +name = "pin-project" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", +] + +[[package]] +name = "png" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" dependencies = [ "bitflags", "crc32fast", "deflate", - "miniz_oxide 0.3.7", + "miniz_oxide", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid", ] [[package]] @@ -404,13 +501,22 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + [[package]] name = "quote" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.40", ] [[package]] @@ -437,29 +543,33 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rqrr" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b59469b84c4786afe857cc5bdc9a017be2d2b7ba0356d9ba613437099079e1" +dependencies = [ + "g2p", + "image", + "lru", +] + [[package]] name = "rs_lib" version = "0.0.0" dependencies = [ - "bardecoder", "image", + "rqrr", + "serde", + "serde_json", "wasm-bindgen", ] [[package]] -name = "rustc-demangle" -version = "0.1.21" +name = "ryu" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc_version" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084" -dependencies = [ - "semver", -] +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" [[package]] name = "scoped_threadpool" @@ -474,10 +584,61 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] -name = "semver" -version = "0.1.20" +name = "serde" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.138" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", +] + +[[package]] +name = "serde_json" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" + +[[package]] +name = "spin" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c530c2b0d0bf8b69304b39fe2001993e267461948b890cd037d8ad4293fa1a0d" +dependencies = [ + "lock_api", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid", +] [[package]] name = "syn" @@ -485,31 +646,28 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "unicode-ident", ] [[package]] -name = "synstructure" -version = "0.12.6" +name = "threadpool" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "num_cpus", ] [[package]] name = "tiff" -version = "0.6.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" +checksum = "7cfada0986f446a770eca461e8c6566cb879682f7d687c8348aa0c857bd52286" dependencies = [ + "flate2", "jpeg-decoder", - "miniz_oxide 0.4.4", "weezl", ] @@ -521,9 +679,21 @@ checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" @@ -544,9 +714,9 @@ dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "wasm-bindgen-shared", ] @@ -556,7 +726,7 @@ version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ - "quote", + "quote 1.0.20", "wasm-bindgen-macro-support", ] @@ -566,9 +736,9 @@ version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib.generated.js b/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib.generated.js index 66ab6e8..ab50ae8 100644 --- a/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib.generated.js +++ b/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib.generated.js @@ -1,9 +1,16 @@ // @generated file from wasmbuild -- do not edit // deno-lint-ignore-file // deno-fmt-ignore-file -// source-hash: 7b04f965aad3774d53b13732c0edf9275f95b5a7 +// source-hash: c23573003acd9b1ce4fd13ea7740772e68a77471 let wasm; +const cachedTextDecoder = new TextDecoder("utf-8", { + ignoreBOM: true, + fatal: true, +}); + +cachedTextDecoder.decode(); + let cachedUint8Memory0; function getUint8Memory0() { if (cachedUint8Memory0.byteLength === 0) { @@ -12,6 +19,10 @@ function getUint8Memory0() { return cachedUint8Memory0; } +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + let WASM_VECTOR_LEN = 0; function passArray8ToWasm0(arg, malloc) { @@ -28,17 +39,6 @@ function getInt32Memory0() { } return cachedInt32Memory0; } - -const cachedTextDecoder = new TextDecoder("utf-8", { - ignoreBOM: true, - fatal: true, -}); - -cachedTextDecoder.decode(); - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} /** * @param {Uint8Array} image_bytes * @returns {string} @@ -59,7 +59,11 @@ export function decode_qr(image_bytes) { } const imports = { - __wbindgen_placeholder__: {}, + __wbindgen_placeholder__: { + __wbindgen_throw: function (arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + }, }; const wasm_url = new URL("rs_lib_bg.wasm", import.meta.url); diff --git a/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib_bg.wasm b/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib_bg.wasm index 895c3ce..3e38632 100644 Binary files a/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib_bg.wasm and b/__wasm/deno_rust_wasm_qr_decode/lib/rs_lib_bg.wasm differ diff --git a/__wasm/deno_rust_wasm_qr_decode/main.js b/__wasm/deno_rust_wasm_qr_decode/main.js index b2f41e0..2c5a7ef 100644 --- a/__wasm/deno_rust_wasm_qr_decode/main.js +++ b/__wasm/deno_rust_wasm_qr_decode/main.js @@ -1,7 +1,25 @@ import { instantiate } from "./lib/rs_lib.generated.js"; - const { decode_qr } = await instantiate(); -const bytes = await Deno.readFile("test_qr_3.png"); +async function main() { + if (Deno.args.length == 0) { + console.error('No arguments assigned!'); + return; + } + + console.log('Input files: ', Deno.args); + for (let i = 0; i < Deno.args.length; i++) { + let arg = Deno.args[i]; + console.log("----- Processing file: ", arg, '-----'); + try { + let bytes = await Deno.readFile(arg); + let qr_json = decode_qr(bytes); + const parsed_qr = await JSON.parse(qr_json); + console.log(JSON.stringify(parsed_qr, null, 4)); + } catch (e) { + console.error('Process file: ', arg, ' failed: ', e + ''); + } + } +} -console.log(decode_qr(bytes)); +await main(); diff --git a/__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml b/__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml index b87b026..c73a869 100644 --- a/__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml +++ b/__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml @@ -14,6 +14,8 @@ opt-level = "z" [dependencies] wasm-bindgen = "=0.2.81" -bardecoder = "0.3.0" -image = "0.23" +rqrr = "0.5" +image = "0.24" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" diff --git a/__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs b/__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs index 6a15c7c..46013ff 100644 --- a/__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs +++ b/__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs @@ -1,21 +1,58 @@ +use serde::{Deserialize, Serialize}; use wasm_bindgen::prelude::*; +#[derive(Clone, Debug, Serialize, Deserialize)] +struct Response { + error_message: Option, + qr_results: Option>, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +struct QrResult { + qr: Option, + error_message: Option, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +struct Qr { + version: usize, + ecc_level: u16, + mask: u16, + content: String, +} + #[wasm_bindgen] pub fn decode_qr(image_bytes: &[u8]) -> String { let img = match image::load_from_memory(image_bytes) { - Ok(img) => img, - Err(e) => return format!("ERROR:{}", e), + Ok(img) => img.to_luma8(), + Err(e) => return serde_json::to_string( + &Response { qr_results: None, error_message: Some(format!("Parse image error: {}", e)) } + ).unwrap(), }; - let decoder = bardecoder::default_decoder(); - let results = decoder.decode(&img); + let mut img = rqrr::PreparedImage::prepare(img); + let grids = img.detect_grids(); - let mut r = vec![]; - for result in results { - match result { - Ok(s) => r.push(vec![s, "".to_string()]), - Err(e) => r.push(vec!["".to_string(), format!("error: {}", e)]), + let mut qr_results = vec![]; + for grid in grids { + match grid.decode() { + Err(e) => { + qr_results.push(QrResult { qr: None, error_message: Some(format!("Parse qr error: {}", e)) }) + } + Ok((meta, content)) => { + qr_results.push(QrResult { + qr: Some(Qr { + version: meta.version.0, + ecc_level: meta.ecc_level, + mask: meta.mask, + content, + }), + error_message: None, + }) + } } } - format!("{:?}", r) + serde_json::to_string( + &Response { qr_results: Some(qr_results), error_message: None } + ).unwrap() } diff --git a/__wasm/deno_rust_wasm_qr_decode/test_qr.png b/__wasm/deno_rust_wasm_qr_decode/test_qr_0.png similarity index 100% rename from __wasm/deno_rust_wasm_qr_decode/test_qr.png rename to __wasm/deno_rust_wasm_qr_decode/test_qr_0.png diff --git a/__wasm/deno_rust_wasm_qr_decode/test_qr_1.png b/__wasm/deno_rust_wasm_qr_decode/test_qr_1.png new file mode 100644 index 0000000..2535446 Binary files /dev/null and b/__wasm/deno_rust_wasm_qr_decode/test_qr_1.png differ