Implement JsCast for all imported types

This commit implements the `JsCast` trait automatically for all imported types
in `#[wasm_bindgen] extern { ... }` blocks. The main change here was to generate
an `instanceof` shim for all imported types in case it's needed.

All imported types now also implement `AsRef<JsValue>` and `AsMut<JsValue>`
This commit is contained in:
Alex Crichton
2018-08-04 09:41:59 -07:00
parent f3f11ed8eb
commit 11553a1af2
9 changed files with 178 additions and 6 deletions

View File

@ -3,7 +3,7 @@
#[macro_use]
extern crate serde_derive;
pub const SCHEMA_VERSION: &str = "7";
pub const SCHEMA_VERSION: &str = "8";
#[derive(Deserialize)]
pub struct ProgramOnlySchema {
@ -81,7 +81,10 @@ pub struct ImportStatic {
}
#[derive(Deserialize, Serialize)]
pub struct ImportType {}
pub struct ImportType {
pub name: String,
pub instanceof_shim: String,
}
#[derive(Deserialize, Serialize)]
pub struct ImportEnum {}