Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use js_sys::Uint8Array::view instead #223

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mike-kfed
Copy link

of direct access to wasm-memory for the regular tutorial and Uint32Array for the bits
exercise.

Summary

I learned that directly accessing webassembly shared memory is not needed anymore, easier to write and equally efficient are js_sys typed Array views. This change of the tutorial in the book goes together with my PR for the code rustwasm/wasm_game_of_life#53

I hope my explanations of what is going on are sufficient, but please let me know if wording should change, english is not my primary language.

Note: I decided to change the algorithm for bitIsSet and use of a Uint32Array for the cells in the bits exercise because staying with Uint8Array would have meant this ugly rust code:

        pub fn cells(&mut self) -> js_sys::Uint8Array {
            unsafe {
                js_sys::Uint8Array::view_mut_raw(
                    mem::transmute::<&[u32], *mut [u8]>(&self.cells.as_slice()) as *mut u8,
                    self.cells.len() / 8,
                )
            }
        }

wasm-memory for the regular tutorial and Uin32Array for the bits
exercise.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant