animejs_rs/
lib.rs

1use js_sys::Object;
2use std::collections::HashMap;
3use wasm_bindgen::prelude::*;
4use web_sys::js_sys;
5pub enum AnimeValue {
6    String(String),
7    Number(f64),
8}
9
10pub fn hashmap_to_anime_options(options: HashMap<&str, AnimeValue>) -> JsValue {
11    let obj = Object::new();
12    for (key, value) in options {
13        let js_value = match value {
14            AnimeValue::String(s) => JsValue::from_str(&s),
15            AnimeValue::Number(n) => JsValue::from_f64(n),
16        };
17        js_sys::Reflect::set(&obj, &JsValue::from_str(key), &js_value).unwrap();
18    }
19    obj.into()
20}
21
22#[wasm_bindgen]
23extern "C" {
24    #[wasm_bindgen(js_namespace = window)]
25    pub fn anime(options: JsValue);
26}