feat: improve hash functions

This commit is contained in:
2024-04-16 13:30:14 +02:00
parent dec205b234
commit 3d3ea5b5f8
33 changed files with 1416 additions and 963 deletions

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -17,9 +17,6 @@ pub fn execute(input: &[i32]) -> Vec<i32> {
// let value = decode_float(value_encoded[0], value_encoded[1]);
let length = args[1];
// console::log_1(&format!("WASM(array_node): args {:?} ", args).into());
// console::log_1(&format!("WASM(array_node): value: {:?} length: {:?}", value, length).into());
// construct array of length
let mut res: Vec<i32> = Vec::with_capacity(length[0] as usize * 2 + 2);
res.push(0);

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -21,6 +21,7 @@ wasm-bindgen = "0.2.84"
utils = { version = "0.1.0", path = "../../../../packages/utils" }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
macros = { version = "0.1.0", path = "../../../../packages/macros" }
serde-wasm-bindgen = "0.4"
console_error_panic_hook = { version = "0.1.7", optional = true }
web-sys = { version = "0.3.69", features = ["console"] }

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -0,0 +1,7 @@
{
"input": {
"type": "float",
"value": 0.0,
"external": true
}
}

View File

@@ -1,20 +1,9 @@
// use utils::decode_float;
use macros::generate_input_types_file;
use utils::evaluate_args;
use wasm_bindgen::prelude::*;
// use web_sys::console;
#[wasm_bindgen]
pub fn get_outputs() -> Vec<String> {
vec![]
}
generate_input_types_file!("src/inputs.json");
#[wasm_bindgen]
pub fn get_input_types() -> String {
r#"{
"input": { "type": "float", "value": 0.0, "external": true }
}"#
.to_string()
}
#[wasm_bindgen]
pub fn execute(args: &[i32]) -> Vec<i32> {
utils::set_panic_hook();

View File

@@ -18,7 +18,7 @@ wasm-bindgen = "0.2.84"
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
utils = { version = "0.1.0", path = "../../../../packages/utils" }
macros = { version = "0.1.0", path = "../../../../packages/macros" }
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.4"
console_error_panic_hook = { version = "0.1.7", optional = true }

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -21,3 +21,9 @@ web-sys = { version = "0.3.69", features = ["console"] }
[dev-dependencies]
wasm-bindgen-test = "0.3.34"
[package.metadata.wasm-pack.profile.release.wasm-bindgen]
debug-js-glue = true
demangle-name-section = true
dwarf-debug-info = false
omit-default-module-path = true

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -1,27 +1,15 @@
{
"op_type": {
"label": "type",
"type": "select",
"labels": [
"add",
"subtract",
"multiply",
"divide"
],
"internal": true,
"value": 0
},
"a": {
"length": {
"type": "float",
"value": 2
},
"b": {
"thickness": {
"type": "float",
"value": 2
},
"clip": {
"type": "boolean",
"value": 0,
"setting": "math.clipping"
"resolution": {
"type": "integer",
"value": 32,
"setting": "resolution.stem"
}
}

View File

@@ -1,18 +1,33 @@
use macros::generate_input_types_file;
use utils::generate_outputs;
use utils::{evaluate_args, generate_outputs, get_args};
use wasm_bindgen::prelude::*;
use web_sys::console;
generate_outputs!(["stem"]);
generate_input_types_file!("src/input.json");
#[wasm_bindgen]
pub fn execute(args: &[i32]) -> Vec<i32> {
let mut result = Vec::with_capacity(args.len() + 3);
pub fn execute(input: &[i32]) -> Vec<i32> {
let args = get_args(input);
let length = evaluate_args(args[0]);
let thickness = evaluate_args(args[1]);
let resolution = evaluate_args(args[2]);
console::log_1(
&format!(
"length: {:?}, thickness: {:?}, resolution: {:?}",
length, thickness, resolution
)
.into(),
);
let mut result: Vec<i32> = Vec::with_capacity(args.len() + 3);
result.push(0); // encoding the [ bracket
result.push(args[1] + 1);
result.push(2);
result.push(0); // adding the node-type, math: 0
result.extend_from_slice(&args[2..]);
result.extend_from_slice(&thickness);
result.push(1);
result.push(1); // closing bracket

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}

View File

@@ -1,5 +1,6 @@
{
"scripts": {
"build": "wasm-pack build --release --out-name index --no-default-features"
"build": "wasm-pack build --release --out-name index --no-default-features",
"dev": "cargo watch -s 'pnpm build'"
}
}