mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-24 10:11:34 +00:00
This commit is a large-ish scale reorganization of our examples. The main goal here is to have a dedicated section of the guide for example, and all examples will be listed there. Each example's `README` is now just boilerplate pointing at the guide along with a blurb about how to run it. Some examples like `math` and `smorgasboard` have been deleted as they didn't really serve much purpose, and others like `closures` have been rewritten with `web-sys` instead of hand-bound bindings. Overall it's hoped that this puts us in a good and consistent state for our examples, with all of them being described in the guide, excerpts are in the guide, and they're all relatively idiomatically using `web-sys`.
27 lines
712 B
Markdown
27 lines
712 B
Markdown
# Importing non-browser JS
|
|
|
|
[View full source code][code]
|
|
|
|
[code]: https://github.com/rustwasm/wasm-bindgen/tree/master/examples/import_js
|
|
|
|
The `#[wasm_bindgen]` attribute can be used on `extern { .. }` blocks to import
|
|
functionality from JS. This is how the `js-sys` and the `web-sys` crates are
|
|
built, but you can also use it in your own crate!
|
|
|
|
For example if you're working with this JS file:
|
|
|
|
```js
|
|
// defined-in-js.js
|
|
{{#include ../../../examples/import_js/defined-in-js.js}}
|
|
```
|
|
|
|
you can use it in Rust with:
|
|
|
|
```rust
|
|
{{#include ../../../examples/import_js/src/lib.rs}}
|
|
```
|
|
|
|
You can also [explore the full list of ways to configure imports][attr]
|
|
|
|
[attr]: ../reference/attributes/on-js-imports/index.html
|