Make query optimizer pluggable
This commit is contained in:
6
packages/system-query/pkg/system_query.d.ts
vendored
6
packages/system-query/pkg/system_query.d.ts
vendored
@ -22,6 +22,11 @@ export function get_diff(prev: any, next: any): any;
|
||||
* @returns {any}
|
||||
*/
|
||||
export function flat_merge(val: any): any;
|
||||
/**
|
||||
* @param {any} val
|
||||
* @returns {any}
|
||||
*/
|
||||
export function compress(val: any): any;
|
||||
|
||||
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
||||
|
||||
@ -31,6 +36,7 @@ export interface InitOutput {
|
||||
readonly expand_filter: (a: number, b: number) => void;
|
||||
readonly get_diff: (a: number, b: number, c: number) => void;
|
||||
readonly flat_merge: (a: number, b: number) => void;
|
||||
readonly compress: (a: number, b: number) => void;
|
||||
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
||||
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
||||
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
||||
|
@ -270,6 +270,26 @@ export function flat_merge(val) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} val
|
||||
* @returns {any}
|
||||
*/
|
||||
export function compress(val) {
|
||||
try {
|
||||
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
||||
wasm.compress(retptr, addHeapObject(val));
|
||||
var r0 = getInt32Memory0()[retptr / 4 + 0];
|
||||
var r1 = getInt32Memory0()[retptr / 4 + 1];
|
||||
var r2 = getInt32Memory0()[retptr / 4 + 2];
|
||||
if (r2) {
|
||||
throw takeObject(r1);
|
||||
}
|
||||
return takeObject(r0);
|
||||
} finally {
|
||||
wasm.__wbindgen_add_to_stack_pointer(16);
|
||||
}
|
||||
}
|
||||
|
||||
function handleError(f, args) {
|
||||
try {
|
||||
return f.apply(this, args);
|
||||
|
Binary file not shown.
@ -5,6 +5,7 @@ export function diff_filters(a: number, b: number, c: number): void;
|
||||
export function expand_filter(a: number, b: number): void;
|
||||
export function get_diff(a: number, b: number, c: number): void;
|
||||
export function flat_merge(a: number, b: number): void;
|
||||
export function compress(a: number, b: number): void;
|
||||
export function __wbindgen_malloc(a: number, b: number): number;
|
||||
export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number;
|
||||
export function __wbindgen_add_to_stack_pointer(a: number): number;
|
||||
|
@ -44,6 +44,13 @@ pub fn flat_merge(val: JsValue) -> Result<JsValue, JsValue> {
|
||||
Ok(serde_wasm_bindgen::to_value(&result)?)
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn compress(val: JsValue) -> Result<JsValue, JsValue> {
|
||||
let val_parsed: Vec<ReqFilter> = serde_wasm_bindgen::from_value(val)?;
|
||||
let result = merge::merge::<ReqFilter, ReqFilter>(val_parsed.iter().collect());
|
||||
Ok(serde_wasm_bindgen::to_value(&result)?)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
Reference in New Issue
Block a user