bindings.rs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #![allow(clippy::unused_unit, non_upper_case_globals)]
  2. use js_sys::Function;
  3. use wasm_bindgen::prelude::*;
  4. use web_sys::{Element, Node};
  5. #[wasm_bindgen(module = "/src/interpreter.js")]
  6. extern "C" {
  7. pub type Interpreter;
  8. #[wasm_bindgen(constructor)]
  9. pub fn new(arg: Element) -> Interpreter;
  10. #[wasm_bindgen(method)]
  11. pub fn set_node(this: &Interpreter, id: usize, node: Node);
  12. #[wasm_bindgen(method)]
  13. pub fn PushRoot(this: &Interpreter, root: u64);
  14. #[wasm_bindgen(method)]
  15. pub fn AppendChildren(this: &Interpreter, many: u32);
  16. #[wasm_bindgen(method)]
  17. pub fn ReplaceWith(this: &Interpreter, root: u64, m: u32);
  18. #[wasm_bindgen(method)]
  19. pub fn InsertAfter(this: &Interpreter, root: u64, n: u32);
  20. #[wasm_bindgen(method)]
  21. pub fn InsertBefore(this: &Interpreter, root: u64, n: u32);
  22. #[wasm_bindgen(method)]
  23. pub fn Remove(this: &Interpreter, root: u64);
  24. #[wasm_bindgen(method)]
  25. pub fn CreateTextNode(this: &Interpreter, text: JsValue, root: u64);
  26. #[wasm_bindgen(method)]
  27. pub fn CreateElement(this: &Interpreter, tag: &str, root: u64);
  28. #[wasm_bindgen(method)]
  29. pub fn CreateElementNs(this: &Interpreter, tag: &str, root: u64, ns: &str);
  30. #[wasm_bindgen(method)]
  31. pub fn CreatePlaceholder(this: &Interpreter, root: u64);
  32. #[wasm_bindgen(method)]
  33. pub fn NewEventListener(this: &Interpreter, name: &str, root: u64, handler: &Function);
  34. #[wasm_bindgen(method)]
  35. pub fn RemoveEventListener(this: &Interpreter, root: u64, name: &str);
  36. #[wasm_bindgen(method)]
  37. pub fn SetText(this: &Interpreter, root: u64, text: JsValue);
  38. #[wasm_bindgen(method)]
  39. pub fn SetAttribute(
  40. this: &Interpreter,
  41. root: u64,
  42. field: &str,
  43. value: JsValue,
  44. ns: Option<&str>,
  45. );
  46. #[wasm_bindgen(method)]
  47. pub fn RemoveAttribute(this: &Interpreter, root: u64, field: &str, ns: Option<&str>);
  48. }