Because the toml error only spits out the error for the first thing it runs into it doesn't parse all of the missing fields. We first serialize the data to a generic toml type to check this ourselves. If everything is there we serialize directly to the type we expected. Otherwise we throw an error with all the fields that are missing.master
parent
5c4a68ee52
commit
57e461eaab
@ -0,0 +1,140 @@ |
||||
[[package]] |
||||
name = "bad-cargo-toml" |
||||
version = "0.1.0" |
||||
dependencies = [ |
||||
"wasm-bindgen 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "dtoa" |
||||
version = "0.4.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "fnv" |
||||
version = "1.0.6" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "itoa" |
||||
version = "0.3.4" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "num-traits" |
||||
version = "0.2.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "proc-macro2" |
||||
version = "0.2.3" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "quote" |
||||
version = "0.4.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "serde" |
||||
version = "1.0.33" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "serde_derive" |
||||
version = "1.0.33" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"serde_derive_internals 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"syn 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "serde_derive_internals" |
||||
version = "0.21.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"syn 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "serde_json" |
||||
version = "1.0.11" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"num-traits 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"serde 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "syn" |
||||
version = "0.12.14" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "unicode-xid" |
||||
version = "0.1.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen" |
||||
version = "0.1.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"wasm-bindgen-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-macro" |
||||
version = "0.1.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"serde_json 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"syn 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"wasm-bindgen-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-shared" |
||||
version = "0.1.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
dependencies = [ |
||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"serde 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
"serde_derive 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", |
||||
] |
||||
|
||||
[metadata] |
||||
"checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" |
||||
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" |
||||
"checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c" |
||||
"checksum num-traits 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3c2bd9b9d21e48e956b763c9f37134dc62d9e95da6edb3f672cacb6caf3cd3" |
||||
"checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0" |
||||
"checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408" |
||||
"checksum serde 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe95aa0d46f04ce5c3a88bdcd4114ecd6144ed0b2725ebca2f1127744357807" |
||||
"checksum serde_derive 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "23b163a6ce7e1aa897919f9d8e40bd1f8a6f95342ed57727ae31387a01a7a356" |
||||
"checksum serde_derive_internals 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "370aa477297975243dc914d0b0e1234927520ec311de507a560fbd1c80f7ab8c" |
||||
"checksum serde_json 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "fab6c4d75bedcf880711c85e39ebf8ccc70d0eba259899047ec5d7436643ee17" |
||||
"checksum syn 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)" = "8c5bc2d6ff27891209efa5f63e9de78648d7801f085e4653701a692ce938d6fd" |
||||
"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" |
||||
"checksum wasm-bindgen 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "717507a3c7ef09d740c6d781bda57ba054d7b776f3e27d4478e25a773afd2e4b" |
||||
"checksum wasm-bindgen-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc1a194a8fe6319f9f326f0c03d2083d61727ace574f9b1df083bad79a314ad" |
||||
"checksum wasm-bindgen-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8b7cf730a826f1ec1ea2143d8582d5d2d27c0775035652daf0e0337225e8566b" |
@ -0,0 +1,7 @@ |
||||
[package] |
||||
name = "bad-cargo-toml" |
||||
version = "0.1.0" |
||||
authors = ["Michael Gattozzi <mgattozzi@gmail.com>"] |
||||
|
||||
[dependencies] |
||||
wasm-bindgen = "0.1" |
@ -0,0 +1,2 @@ |
||||
# bad-cargo-toml |
||||
> an example rust -> wasm project |
@ -0,0 +1,15 @@ |
||||
#![feature(proc_macro)] |
||||
|
||||
extern crate wasm_bindgen; |
||||
|
||||
use wasm_bindgen::prelude::*; |
||||
|
||||
#[wasm_bindgen] |
||||
extern { |
||||
fn alert(s: &str); |
||||
} |
||||
|
||||
#[wasm_bindgen] |
||||
pub fn greet(name: &str) { |
||||
alert(&format!("Hello, {}!", name)); |
||||
} |
Loading…
Reference in new issue