aboutsummaryrefslogtreecommitdiffstats
path: root/libs/zora-rs
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2024-04-05 16:40:12 -0500
committerMatt Strapp <matt@mattstrapp.net>2024-04-05 16:40:12 -0500
commit925180e2dcb2b95cb2777a75e1491499c0d69936 (patch)
treec01a7936f87dc3ce82ce8734ee9c2381f2aa8029 /libs/zora-rs
parentBump typescript from 5.4.3 to 5.4.4 (diff)
downloadzorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar.gz
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar.bz2
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar.lz
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar.xz
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.tar.zst
zorascript-925180e2dcb2b95cb2777a75e1491499c0d69936.zip
Add rust
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'libs/zora-rs')
-rw-r--r--libs/zora-rs/.gitignore6
-rw-r--r--libs/zora-rs/Cargo.toml26
-rw-r--r--libs/zora-rs/README.md0
-rw-r--r--libs/zora-rs/src/lib.rs13
-rw-r--r--libs/zora-rs/src/utils.rs10
-rw-r--r--libs/zora-rs/tests/web.rs13
6 files changed, 68 insertions, 0 deletions
diff --git a/libs/zora-rs/.gitignore b/libs/zora-rs/.gitignore
new file mode 100644
index 0000000..4e30131
--- /dev/null
+++ b/libs/zora-rs/.gitignore
@@ -0,0 +1,6 @@
+/target
+**/*.rs.bk
+Cargo.lock
+bin/
+pkg/
+wasm-pack.log
diff --git a/libs/zora-rs/Cargo.toml b/libs/zora-rs/Cargo.toml
new file mode 100644
index 0000000..bb5172f
--- /dev/null
+++ b/libs/zora-rs/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+name = "zora-rs"
+description = "A Rust implementation of the GBC Zelda Password Generator"
+repository = "https://github.com/RosstheRoss/zorascript"
+license = "MIT"
+version = "0.1.0"
+authors = ["Matt Strapp <matt@mattstrapp.net>"]
+edition = "2018"
+
+[lib]
+crate-type = ["cdylib", "rlib"]
+
+[features]
+default = ["console_error_panic_hook"]
+
+[dependencies]
+wasm-bindgen = "0.2.84"
+
+# The `console_error_panic_hook` crate provides better debugging of panics by
+# logging them with `console.error`. This is great for development, but requires
+# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
+# code size when deploying.
+console_error_panic_hook = { version = "0.1.7", optional = true }
+
+[dev-dependencies]
+wasm-bindgen-test = "0.3.34"
diff --git a/libs/zora-rs/README.md b/libs/zora-rs/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libs/zora-rs/README.md
diff --git a/libs/zora-rs/src/lib.rs b/libs/zora-rs/src/lib.rs
new file mode 100644
index 0000000..239f3af
--- /dev/null
+++ b/libs/zora-rs/src/lib.rs
@@ -0,0 +1,13 @@
+mod utils;
+
+use wasm_bindgen::prelude::*;
+
+#[wasm_bindgen]
+extern "C" {
+ fn alert(s: &str);
+}
+
+#[wasm_bindgen]
+pub fn greet() {
+ alert("Hello, zora-rs!");
+}
diff --git a/libs/zora-rs/src/utils.rs b/libs/zora-rs/src/utils.rs
new file mode 100644
index 0000000..b1d7929
--- /dev/null
+++ b/libs/zora-rs/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();
+}
diff --git a/libs/zora-rs/tests/web.rs b/libs/zora-rs/tests/web.rs
new file mode 100644
index 0000000..de5c1da
--- /dev/null
+++ b/libs/zora-rs/tests/web.rs
@@ -0,0 +1,13 @@
+//! Test suite for the Web and headless browsers.
+
+#![cfg(target_arch = "wasm32")]
+
+extern crate wasm_bindgen_test;
+use wasm_bindgen_test::*;
+
+wasm_bindgen_test_configure!(run_in_browser);
+
+#[wasm_bindgen_test]
+fn pass() {
+ assert_eq!(1 + 1, 2);
+}