Showing content from https://rustwasm.github.io/docs/wasm-bindgen/reference/types/result.html below:
Result<T, E> - 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. Result<T, E>
T
parameter &T
parameter &mut T
parameter T
return value Option<T>
parameter Option<T>
return value JavaScript representation No No No Yes No No Same as T
, or an exception
The Result
type can be returned from functions exported to JS as well as closures in Rust. The Ok
type must be able to be converted to JS, and the Err
type must implement Into<JsValue>
. Whenever Ok(val)
is encountered it's converted to JS and handed off, and whenever Err(error)
is encountered an exception is thrown in JS with error
.
You can use Result
to enable handling of JS exceptions with ?
in Rust, naturally propagating it upwards to the Wasm boundary. Furthermore you can also return custom types in Rust so long as they're all convertible to JsValue
.
Note that if you import a JS function with Result
you need #[wasm_bindgen(catch)]
to be annotated on the import (unlike exported functions, which require no extra annotation). This may not be necessary in the future though and it may work "as is"!.
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