From 0bef00b83e965aa350df1cd6a16c6ac39c388d93 Mon Sep 17 00:00:00 2001 From: gabrielgio Date: Fri, 25 Mar 2022 17:37:45 +0100 Subject: feat: Add initial draft for rust wasm It adds the initial tooling for build and publishing a static site with wasm. The generate code is barebones, that is just a PoC for tooling, later I'll add proper code logic and test for it. --- src/lib.rs | 21 +++++++++++++++++++++ src/utils.rs | 10 ++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/lib.rs create mode 100644 src/utils.rs (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..662dda6 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,21 @@ +mod utils; + +use wasm_bindgen::prelude::*; +use rand::Rng; + +// When the `wee_alloc` feature is enabled, use `wee_alloc` as the global +// allocator. +#[cfg(feature = "wee_alloc")] +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[wasm_bindgen] +extern { + fn alert(s: &str); +} + +#[wasm_bindgen] +pub fn generate() -> String { + let num = rand::thread_rng().gen_range(0..100); + format!("{}", num) +} diff --git a/src/utils.rs b/src/utils.rs new file mode 100644 index 0000000..b1d7929 --- /dev/null +++ b/src/utils.rs @@ -0,0 +1,10 @@ +pub fn set_panic_hook() { + // When the `console_error_panic_hook` feature is enabled, we can call the + // `set_panic_hook` function at least once during initialization, and then + // we will get better error messages if our code ever panics. + // + // For more details see + // https://github.com/rustwasm/console_error_panic_hook#readme + #[cfg(feature = "console_error_panic_hook")] + console_error_panic_hook::set_once(); +} -- cgit v1.2.3