diff --git a/pkg/argus_wasm.d.ts b/pkg/argus_wasm.d.ts index 84fbd5a..4aa98fe 100644 --- a/pkg/argus_wasm.d.ts +++ b/pkg/argus_wasm.d.ts @@ -16,11 +16,17 @@ export class StateBuddyTrace { free(): void; [Symbol.dispose](): void; } +export class StateBuddyTraceEntry { + private constructor(); + free(): void; + [Symbol.dispose](): void; +} export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { readonly memory: WebAssembly.Memory; + readonly __wbg_statebuddytraceentry_free: (a: number, b: number) => void; readonly __wbg_statebuddytrace_free: (a: number, b: number) => void; readonly eval_boolean: (a: number, b: number, c: number) => number; readonly __wbg_statebuddyevalresultentry_free: (a: number, b: number) => void; diff --git a/pkg/argus_wasm.js b/pkg/argus_wasm.js index 4c6a17a..e9accae 100644 --- a/pkg/argus_wasm.js +++ b/pkg/argus_wasm.js @@ -170,6 +170,26 @@ export class StateBuddyTrace { } if (Symbol.dispose) StateBuddyTrace.prototype[Symbol.dispose] = StateBuddyTrace.prototype.free; +const StateBuddyTraceEntryFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_statebuddytraceentry_free(ptr >>> 0, 1)); + +export class StateBuddyTraceEntry { + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + StateBuddyTraceEntryFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_statebuddytraceentry_free(ptr, 0); + } +} +if (Symbol.dispose) StateBuddyTraceEntry.prototype[Symbol.dispose] = StateBuddyTraceEntry.prototype.free; + const EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']); async function __wbg_load(module, imports) { diff --git a/pkg/argus_wasm_bg.wasm b/pkg/argus_wasm_bg.wasm index be31eb7..bcc1b44 100644 Binary files a/pkg/argus_wasm_bg.wasm and b/pkg/argus_wasm_bg.wasm differ diff --git a/pkg/argus_wasm_bg.wasm.d.ts b/pkg/argus_wasm_bg.wasm.d.ts index 9d3e585..2d93571 100644 --- a/pkg/argus_wasm_bg.wasm.d.ts +++ b/pkg/argus_wasm_bg.wasm.d.ts @@ -1,6 +1,7 @@ /* tslint:disable */ /* eslint-disable */ export const memory: WebAssembly.Memory; +export const __wbg_statebuddytraceentry_free: (a: number, b: number) => void; export const __wbg_statebuddytrace_free: (a: number, b: number) => void; export const eval_boolean: (a: number, b: number, c: number) => number; export const __wbg_statebuddyevalresultentry_free: (a: number, b: number) => void; diff --git a/src/lib.rs b/src/lib.rs index d92bc9f..b69f1fe 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,7 +76,7 @@ impl<'a> Trace for TraceMap<'a> { // } // } -#[derive(Serialize, Deserialize)] +#[wasm_bindgen(getter_with_clone)] pub struct StateBuddyTraceEntry { simtime: f64, inputEvent: String,