Как с wasm-bindgen - импортировать js с более чем одним уровнем модуля - PullRequest
0 голосов
/ 17 января 2020

В следующем примере https://github.com/rustwasm/wasm-bindgen/tree/master/examples/import_js работает нормально. Следующим шагом я пытаюсь импортировать js -модуль с двумя уровнями модулей. Позвольте вместо MyClass ссылаться на mylib.part1.MyClass.

В файле rust wasm-bindgen, который я пытаюсь импортировать с помощью:

#[wasm_bindgen(module = "/defined-in-js.js")]
extern "C" {

    type MyClass;

    #[wasm_bindgen(constructor, js_namespace = mylib.part1)]
    fn new() -> MyClass;
}

Это дает ошибку сборки:

error: expected `,`
  --> src/lib.rs:13:53
   |
13 |     #[wasm_bindgen(constructor, js_namespace = mylib.part1)]
   |                                                     ^

Можно ли сделать импорт в wasm-bindgen? Альтернативный вариант обходного решения с реэкспортом в js без двухуровневых модулей (пробовал, но не справился).

1 Ответ

0 голосов
/ 12 февраля 2020

Может быть сделано с реэкспортом из оболочки js.

Например, импорт mdc.list.MDCList из md c web.

Оболочка js mdc_web_wrap.js

const MDCList = mdc.list.MDCList;

export { MDCList }

Тогда wasm-bindgen Импорт

#[wasm_bindgen(module = "/js/mdc_web_wrap.js")]
extern "C" {

    pub type MDCList;

    #[wasm_bindgen(constructor)]
    pub fn new(arg: &web_sys::Element) -> MDCList;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...