I'm using rust-wasm, wasm-bindgen, to create a javascript wrapper for a rust library.
I have a rust constructor currently defined like
#[wasm_bindgen(js_class = Dater)]
impl DaterWrapper {
#[wasm_bindgen(constructor)]
pub fn new(
dts: Option<String>,
code: Option<String>,
raw: Option<Vec<u8>>,
qb64b: Option<Vec<u8>>,
qb64: Option<String>,
qb2: Option<Vec<u8>>,
) -> Result<DaterWrapper> {
let dater = Dater::new(
dts.as_deref(),
code.as_deref(),
raw.as_deref(),
qb64b.as_deref(),
qb64.as_deref(),
qb2.as_deref(),
)
.as_js()?;
Ok(DaterWrapper(dater))
It generates a js type constructor:
constructor(dts?: string, code?: string, raw?: Uint8Array, qb64b?: Uint8Array, qb64?: string, qb2?: Uint8Array);
Which doesn't allow for javascript destructuring. I'd like to used javascript destructuring to support named parameters in construction like new Dater({dts: now_datetime}).
How can I create a Rust constructor that allows for a call from javascript that will support destructuring?