Skip to content

Commit fd41d8d

Browse files
committed
Merge branch 'aclueless-master'
2 parents d9aeb71 + 1264bdf commit fd41d8d

13 files changed

+93
-87
lines changed

frameworks/keyed/spair-qr/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ edition = "2021"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9-
spair = { version = "0.0.6", features = ["queue-render"] }
9+
spair = { version = "0.0.8", features = ["queue-render"] }
1010
getrandom = { version = "0.2.6", features = ["js"] }
1111
rand = { version = "0.8.5", features = ["small_rng"] }
1212

frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-fbaf7d3f677b548e.js renamed to frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-40beae1445fe1602.js

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ function makeClosure(arg0, arg1, dtor, f) {
6868

6969
return real;
7070
}
71-
function __wbg_adapter_18(arg0, arg1, arg2) {
72-
wasm._dyn_core__ops__function__Fn__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__he718341fba5a25e6(arg0, arg1, addHeapObject(arg2));
71+
function __wbg_adapter_22(arg0, arg1, arg2) {
72+
wasm._dyn_core__ops__function__Fn__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h85333ec449a8cc22(arg0, arg1, addHeapObject(arg2));
7373
}
7474

7575
function handleError(f, args) {
@@ -196,9 +196,6 @@ function getImports() {
196196
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
197197
takeObject(arg0);
198198
};
199-
imports.wbg.__wbg_removeEventListener_dd20475efce70084 = function() { return handleError(function (arg0, arg1, arg2, arg3) {
200-
getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));
201-
}, arguments) };
202199
imports.wbg.__wbindgen_cb_drop = function(arg0) {
203200
const obj = takeObject(arg0).original;
204201
if (obj.cnt-- == 1) {
@@ -277,55 +274,59 @@ function getImports() {
277274
getInt32Memory0()[arg0 / 4 + 1] = len0;
278275
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
279276
}, arguments) };
280-
imports.wbg.__wbg_process_0cc2ada8524d6f83 = function(arg0) {
281-
const ret = getObject(arg0).process;
277+
imports.wbg.__wbg_crypto_e1d53a1d73fb10b8 = function(arg0) {
278+
const ret = getObject(arg0).crypto;
282279
return addHeapObject(ret);
283280
};
284281
imports.wbg.__wbindgen_is_object = function(arg0) {
285282
const val = getObject(arg0);
286283
const ret = typeof(val) === 'object' && val !== null;
287284
return ret;
288285
};
289-
imports.wbg.__wbg_versions_c11acceab27a6c87 = function(arg0) {
286+
imports.wbg.__wbg_process_038c26bf42b093f8 = function(arg0) {
287+
const ret = getObject(arg0).process;
288+
return addHeapObject(ret);
289+
};
290+
imports.wbg.__wbg_versions_ab37218d2f0b24a8 = function(arg0) {
290291
const ret = getObject(arg0).versions;
291292
return addHeapObject(ret);
292293
};
293-
imports.wbg.__wbg_node_7ff1ce49caf23815 = function(arg0) {
294+
imports.wbg.__wbg_node_080f4b19d15bc1fe = function(arg0) {
294295
const ret = getObject(arg0).node;
295296
return addHeapObject(ret);
296297
};
297298
imports.wbg.__wbindgen_is_string = function(arg0) {
298299
const ret = typeof(getObject(arg0)) === 'string';
299300
return ret;
300301
};
301-
imports.wbg.__wbg_static_accessor_NODE_MODULE_cf6401cc1091279e = function() {
302-
const ret = module;
302+
imports.wbg.__wbg_msCrypto_6e7d3e1f92610cbb = function(arg0) {
303+
const ret = getObject(arg0).msCrypto;
303304
return addHeapObject(ret);
304305
};
305-
imports.wbg.__wbg_require_a746e79b322b9336 = function() { return handleError(function (arg0, arg1, arg2) {
306-
const ret = getObject(arg0).require(getStringFromWasm0(arg1, arg2));
307-
return addHeapObject(ret);
308-
}, arguments) };
309-
imports.wbg.__wbg_crypto_2036bed7c44c25e7 = function(arg0) {
310-
const ret = getObject(arg0).crypto;
306+
imports.wbg.__wbg_newwithlength_f5933855e4f48a19 = function(arg0) {
307+
const ret = new Uint8Array(arg0 >>> 0);
311308
return addHeapObject(ret);
312309
};
313-
imports.wbg.__wbg_msCrypto_a21fc88caf1ecdc8 = function(arg0) {
314-
const ret = getObject(arg0).msCrypto;
310+
imports.wbg.__wbg_require_78a3dcfbdba9cbce = function() { return handleError(function () {
311+
const ret = module.require;
315312
return addHeapObject(ret);
313+
}, arguments) };
314+
imports.wbg.__wbindgen_is_function = function(arg0) {
315+
const ret = typeof(getObject(arg0)) === 'function';
316+
return ret;
316317
};
317-
imports.wbg.__wbg_newwithlength_f5933855e4f48a19 = function(arg0) {
318-
const ret = new Uint8Array(arg0 >>> 0);
318+
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
319+
const ret = getStringFromWasm0(arg0, arg1);
319320
return addHeapObject(ret);
320321
};
321-
imports.wbg.__wbg_randomFillSync_065afffde01daa66 = function() { return handleError(function (arg0, arg1, arg2) {
322+
imports.wbg.__wbg_randomFillSync_6894564c2c334c42 = function() { return handleError(function (arg0, arg1, arg2) {
322323
getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2));
323324
}, arguments) };
324325
imports.wbg.__wbg_subarray_58ad4efbb5bcb886 = function(arg0, arg1, arg2) {
325326
const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
326327
return addHeapObject(ret);
327328
};
328-
imports.wbg.__wbg_getRandomValues_b99eec4244a475bb = function() { return handleError(function (arg0, arg1) {
329+
imports.wbg.__wbg_getRandomValues_805f1c3d65988a5a = function() { return handleError(function (arg0, arg1) {
329330
getObject(arg0).getRandomValues(getObject(arg1));
330331
}, arguments) };
331332
imports.wbg.__wbg_length_9e1ae1900cb0fbd5 = function(arg0) {
@@ -375,6 +376,10 @@ function getImports() {
375376
const ret = getObject(arg0).call(getObject(arg1));
376377
return addHeapObject(ret);
377378
}, arguments) };
379+
imports.wbg.__wbg_call_168da88779e35f61 = function() { return handleError(function (arg0, arg1, arg2) {
380+
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
381+
return addHeapObject(ret);
382+
}, arguments) };
378383
imports.wbg.__wbg_cloneNode_27fa6913b5172820 = function() { return handleError(function (arg0, arg1) {
379384
const ret = getObject(arg0).cloneNode(arg1 !== 0);
380385
return addHeapObject(ret);
@@ -399,7 +404,7 @@ function getImports() {
399404
throw new Error(getStringFromWasm0(arg0, arg1));
400405
};
401406
imports.wbg.__wbindgen_closure_wrapper63 = function(arg0, arg1, arg2) {
402-
const ret = makeClosure(arg0, arg1, 3, __wbg_adapter_18);
407+
const ret = makeClosure(arg0, arg1, 3, __wbg_adapter_22);
403408
return addHeapObject(ret);
404409
};
405410

@@ -436,7 +441,7 @@ function initSync(module) {
436441

437442
async function init(input) {
438443
if (typeof input === 'undefined') {
439-
input = new URL('spair_qr_benchmark-fbaf7d3f677b548e_bg.wasm', import.meta.url);
444+
input = new URL('spair_qr_benchmark-40beae1445fe1602_bg.wasm', import.meta.url);
440445
}
441446
const imports = getImports();
442447

Binary file not shown.

frameworks/keyed/spair-qr/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
<meta charset="UTF-8">
33
<title>Spair queue render</title>
44
<link href="/css/currentStyle.css" rel="stylesheet">
5-
<script type="module">import init from '/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-fbaf7d3f677b548e.js';init('/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-fbaf7d3f677b548e_bg.wasm');</script>
5+
<script type="module">import init from '/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-40beae1445fe1602.js';init('/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-40beae1445fe1602_bg.wasm');</script>
66

7-
<link rel="preload" href="/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-fbaf7d3f677b548e_bg.wasm" as="fetch" type="application/wasm" crossorigin="">
8-
<link rel="modulepreload" href="/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-fbaf7d3f677b548e.js"></head>
7+
<link rel="preload" href="/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-40beae1445fe1602_bg.wasm" as="fetch" type="application/wasm" crossorigin="">
8+
<link rel="modulepreload" href="/frameworks/keyed/spair-qr/bundled-dist/spair_qr_benchmark-40beae1445fe1602.js"></head>
99
<body>
1010
<div id="main"></div>
1111

frameworks/keyed/spair-qr/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Benchmark for Spair-qr",
55
"license": "ISC",
66
"js-framework-benchmark": {
7-
"frameworkVersion": "0.0.6"
7+
"frameworkVersion": "0.0.8"
88
},
99
"scripts": {
1010
"build-prod": "echo This is a no-op. && echo Due to heavy dependencies, the generated javascript is already provided. && echo If you really want to rebuild from source use: && echo npm run build-prod-force",

frameworks/keyed/spair-qr/src/main.rs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct RowData {
1414
struct App {
1515
last_id: u64,
1616
rows: spair::QrVec<RowData>,
17-
selected_id: Option<u64>,
17+
selected_id: spair::QrVal<Option<u64>>,
1818
}
1919

2020
impl App {
@@ -50,7 +50,7 @@ impl App {
5050
}
5151

5252
fn create(&mut self, count: usize) {
53-
self.selected_id = None;
53+
self.selected_id.set(None);
5454
self.append_rows(true, count);
5555
}
5656

@@ -70,26 +70,22 @@ impl App {
7070

7171
fn clear(&mut self) {
7272
self.rows.get_mut().clear();
73-
self.selected_id = None;
73+
self.selected_id.set(None);
7474
}
7575

7676
fn set_selected_id(&mut self, id: u64) {
77-
let mut rows = self.rows.get_mut();
78-
let old_index = self.selected_id.and_then(|id| rows.iter().position(|rd| rd.id == id));
79-
let new_index = rows.iter().position(|rd| rd.id == id);
80-
81-
self.selected_id = Some(id);
82-
rows.request_render_at(old_index);
83-
rows.request_render_at(new_index);
77+
self.selected_id.set(Some(id));
8478
}
8579
}
8680

8781
impl spair::Application for App {
8882
fn init(_: &spair::Comp<App>) -> Self {
83+
let rows: spair::QrVec<RowData> = Default::default();
84+
let selected_id = rows.create_optional_selected_id(|rd, id| rd.id == *id);
8985
Self {
9086
last_id: 0,
91-
rows: Default::default(),
92-
selected_id: None,
87+
rows,
88+
selected_id,
9389
}
9490
}
9591
}
@@ -199,7 +195,7 @@ impl spair::ElementRender<App> for RowData {
199195
let state = e.state();
200196
let comp = e.comp();
201197
let id = self.id;
202-
let in_danger = state.selected_id == Some(self.id);
198+
let in_danger = state.selected_id.get() == Some(self.id);
203199
e
204200
.class_if(in_danger, "danger")
205201
.td(|d| d.class("col-md-1").rupdate(self.id).done())

frameworks/keyed/spair/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ edition = "2021"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9-
spair = { version = "0.0.6", features = ["keyed-list"] }
9+
spair = { version = "0.0.8", features = ["keyed-list"] }
1010
getrandom = { version = "0.2.6", features = ["js"] }
1111
rand = { version = "0.8.5", features = ["small_rng"] }
1212

Binary file not shown.

0 commit comments

Comments
 (0)