aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgabrielgio <gabriel.giovanini@pm.me>2022-03-25 17:37:45 +0100
committergabrielgio <gabriel.giovanini@pm.me>2022-03-25 17:37:45 +0100
commit0bef00b83e965aa350df1cd6a16c6ac39c388d93 (patch)
tree8c94855e87b50884de2ed68d969202d907a1bf0a /src
parentdf46e401bd3dac1162cace8e9259ddaba02d5332 (diff)
downloadgenpass-0bef00b83e965aa350df1cd6a16c6ac39c388d93.tar.gz
genpass-0bef00b83e965aa350df1cd6a16c6ac39c388d93.tar.bz2
genpass-0bef00b83e965aa350df1cd6a16c6ac39c388d93.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs21
-rw-r--r--src/utils.rs10
2 files changed, 31 insertions, 0 deletions
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();
+}