Showing content from https://rustwasm.github.io/docs/wasm-bindgen/reference/attributes/on-rust-exports/start.html below:
start - The `wasm-bindgen` Guide
- Introduction
- 1. Examples
-
- 1.1. Hello, World!
- 1.2. Using console.log
- 1.3. Small Wasm files
- 1.4. Without a Bundler
- 1.5. Synchronous Instantiation
- 1.6. Importing functions from JS
- 1.7. Working with char
- 1.8. js-sys: WebAssembly in WebAssembly
- 1.9. web-sys: DOM hello world
- 1.10. web-sys: Closures
- 1.11. web-sys: performance.now
- 1.12. web-sys: using fetch
- 1.13. web-sys: Weather report
- 1.14. web-sys: canvas hello world
- 1.15. web-sys: canvas Julia set
- 1.16. web-sys: WebAudio
- 1.17. web-sys: WebGL
- 1.18. web-sys: WebSockets
- 1.19. web-sys: WebRTC DataChannel
- 1.20. web-sys: requestAnimationFrame
- 1.21. web-sys: A Simple Paint Program
- 1.22. web-sys: Wasm in Web Worker
- 1.23. Parallel Raytracing
- 1.24. Wasm Audio Worklet
- 1.25. web-sys: A TODO MVC App
- 2. Reference
-
- 2.1. Deployment
- 2.2. JS snippets
- 2.3. Static JS Objects
- 2.4. Passing Rust Closures to JS
- 2.5. Receiving JS Closures in Rust
- 2.6. Promises and Futures
- 2.7. Iterating over JS Values
- 2.8. Arbitrary Data with Serde
- 2.9. Accessing Properties of Untyped JS Values
- 2.10. Working with Duck-Typed Interfaces
- 2.11. Command Line Interface
- 2.12. Optimizing for Size
- 2.13. Supported Rust Targets
- 2.14. Supported Browsers
- 2.15. Support for Weak References
- 2.16. Support for Reference Types
- 2.17. Supported Types
-
- 2.17.1. Imported JavaScript Types
- 2.17.2. Exported Rust Types
- 2.17.3. JsValue
- 2.17.4. Box<[T]> and Vec
- 2.17.5. *const T and *mut T
- 2.17.6. NonNull
- 2.17.7. Numbers
- 2.17.8. bool
- 2.17.9. char
- 2.17.10. str
- 2.17.11. String
- 2.17.12. Number Slices
- 2.17.13. Boxed Number Slices
- 2.17.14. Result<T, E>
- 2.18. #[wasm_bindgen] Attributes
-
- 2.18.1. On JavaScript Imports
-
- 2.18.1.1. catch
- 2.18.1.2. constructor
- 2.18.1.3. extends
- 2.18.1.4. getter and setter
- 2.18.1.5. final
- 2.18.1.6. indexing_getter, indexing_setter, and indexing_deleter
- 2.18.1.7. js_class = "Blah"
- 2.18.1.8. js_name
- 2.18.1.9. js_namespace
- 2.18.1.10. method
- 2.18.1.11. module = "blah"
- 2.18.1.12. raw_module = "blah"
- 2.18.1.13. no_deref
- 2.18.1.14. static_method_of = Blah
- 2.18.1.15. structural
- 2.18.1.16. typescript_type
- 2.18.1.17. variadic
- 2.18.1.18. vendor_prefix
- 2.18.2. On Rust Exports
-
- 2.18.2.1. constructor
- 2.18.2.2. js_name = Blah
- 2.18.2.3. js_class = Blah
- 2.18.2.4. readonly
- 2.18.2.5. skip
- 2.18.2.6. skip_jsdoc
- 2.18.2.7. start
- 2.18.2.8. main
- 2.18.2.9. typescript_custom_section
- 2.18.2.10. getter and setter
- 2.18.2.11. inspectable
- 2.18.2.12. skip_typescript
- 2.18.2.13. getter_with_clone
- 2.18.2.14. unchecked_return_type and unchecked_param_type
- 2.18.2.15. return_description and param_description
- 3. web-sys
-
- 3.1. Using web-sys
- 3.2. Cargo Features
- 3.3. Function Overloads
- 3.4. Type Translations
- 3.5. Inheritance
- 3.6. Unstable APIs
- 4. Testing with wasm-bindgen-test
-
- 4.1. Usage
- 4.2. Writing Asynchronous Tests
- 4.3. Testing in Headless Browsers
- 4.4. Continuous Integration
- 4.5. Coverage (Experimental)
- 5. Contributing to wasm-bindgen
-
- 5.1. Testing
- 5.2. Internal Design
-
- 5.2.1. JS Objects in Rust
- 5.2.2. Exporting a function to JS
- 5.2.3. Exporting a struct to JS
- 5.2.4. Importing a function from JS
- 5.2.5. Importing a class from JS
- 5.2.6. Rust Type conversions
- 5.2.7. Types in wasm-bindgen
- 5.3. js-sys
-
- 5.3.1. Testing
- 5.3.2. Adding More APIs
- 5.4. web-sys
-
- 5.4.1. Overview
- 5.4.2. Testing
- 5.4.3. Logging
- 5.4.4. Supporting More Web APIs
- 5.5. Publishing
- 5.6. Team
This documentation is no longer maintained at this domain, and is now maintained at wasm-bindgen.github.io instead. start
When attached to a function this attribute will configure the start
section of the Wasm executable to be emitted, executing the tagged function as soon as the Wasm module is instantiated.
# #![allow(unused_variables)]
#fn main() {
#[wasm_bindgen(start)]
fn start() {
// executed automatically ...
}
#}
The start
section of the Wasm executable will be configured to execute the start
function here as soon as it can. Note that due to various practical limitations today the start section of the executable may not literally point to start
, but the start
function here should be started up automatically when the wasm module is loaded.
There's a few caveats to be aware of when using the start
attribute:
- The
start
function must take no arguments and must either return ()
or Result<(), JsValue>
- Only one
start
function can be placed into a module, including its dependencies. If more than one is specified then wasm-bindgen
will fail when the CLI is run. It's recommended that only applications use this attribute.
- The
start
function will not be executed when testing.
- Note that the
start
function is relatively new, so if you find any bugs with it, please feel free to report an issue!
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4