# Summary

[Introduction](./introduction.md)

--------------------------------------------------------------------------------

- [Whirlwind Tour](./whirlwind-tour/introduction.md)
  - [Basic Usage](./whirlwind-tour/basic-usage.md)
  - [What Just Happened?](./whirlwind-tour/what-just-happened.md)
  - [What Else Can We Do?](./whirlwind-tour/what-else-can-we-do.md)
- [Reference](./reference/index.md)
  - [Passing Rust Closures to JS](./reference/passing-rust-closures-to-js.md)
  - [Receiving JS Closures in Rust](./reference/receiving-js-closures-in-rust.md)
  - [`Promise`s and `Future`s](./reference/js-promises-and-rust-futures.md)
  - [No ES Modules](./reference/no-esm.md)
  - [Arbitrary Data with Serde](./reference/arbitrary-data-with-serde.md)
  - [Command Line Interface](./reference/cli.md)
  - [Supported Types](./reference/types.md)
    - [Imported JavaScript Types](./reference/types/imported-js-types.md)
    - [Exported Rust Types](./reference/types/exported-rust-types.md)
    - [`JsValue`](./reference/types/jsvalue.md)
    - [`Box<[JsValue]>`](./reference/types/boxed-jsvalue-slice.md)
    - [`*const T` and `*mut T`](./reference/types/pointers.md)
    - [Numbers](./reference/types/numbers.md)
    - [`bool`](./reference/types/bool.md)
    - [`char`](./reference/types/char.md)
    - [`str`](./reference/types/str.md)
    - [`String`](./reference/types/string.md)
    - [Number Slices](./reference/types/number-slices.md)
    - [Boxed Number Slices](./reference/types/boxed-number-slices.md)
  - [`#[wasm_bindgen]` Attributes](./reference/attributes/index.md)
    - [On JavaScript Imports](./reference/attributes/on-js-imports/index.md)
      - [`catch`](./reference/attributes/on-js-imports/catch.md)
      - [`constructor`](./reference/attributes/on-js-imports/constructor.md)
      - [`extends`](./reference/attributes/on-js-imports/extends.md)
      - [`getter` and `setter`](./reference/attributes/on-js-imports/getter-and-setter.md)
      - [`indexing_getter`, `indexing_setter`, and `indexing_deleter`](./reference/attributes/on-js-imports/indexing-getter-setter-deleter.md)
      - [`js_class = "Blah"`](./reference/attributes/on-js-imports/js_class.md)
      - [`js_name`](./reference/attributes/on-js-imports/js_name.md)
      - [`js_namespace`](./reference/attributes/on-js-imports/js_namespace.md)
      - [`method`](./reference/attributes/on-js-imports/method.md)
      - [`module = "blah"`](./reference/attributes/on-js-imports/module.md)
      - [`static_method_of = Blah`](./reference/attributes/on-js-imports/static_method_of.md)
      - [`structural`](./reference/attributes/on-js-imports/structural.md)
    - [On Rust Exports](./reference/attributes/on-rust-exports/index.md)
      - [`constructor`](./reference/attributes/on-rust-exports/constructor.md)
      - [`js_name = Blah`](./reference/attributes/on-rust-exports/js_name.md)
      - [`readonly`](./reference/attributes/on-rust-exports/readonly.md)

--------------------------------------------------------------------------------

- [Contributing](./contributing.md)
  - [Testing](./testing.md)
  - [Internal Design](./design.md)
    - [JS Objects in Rust](./design/js-objects-in-rust.md)
    - [Exporting a function to JS](./design/exporting-rust.md)
    - [Exporting a struct to JS](./design/exporting-rust-struct.md)
    - [Importing a function from JS](./design/importing-js.md)
    - [Importing a class from JS](./design/importing-js-struct.md)
    - [Rust Type conversions](./design/rust-type-conversions.md)
    - [Types in `wasm-bindgen`](./design/describe.md)
  - [`js-sys`](./js-sys.md)
    - [Testing](./js-sys/testing.md)
    - [Adding More APIs](./js-sys/adding-more-apis.md)
  - [`web-sys`](./web-sys.md)
    - [Overview](./web-sys/overview.md)
    - [Testing](./web-sys/testing.md)
    - [Logging](./web-sys/logging.md)
    - [Supporting More Web APIs](./web-sys/supporting-more-web-apis.md)
  - [Publishing](./publishing.md)
  - [Team](./team.md)
