build.rs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. use std::{fs::File, io::Write};
  2. fn main() {
  3. let src = format!(
  4. r###"use js_sys::Function;
  5. use wasm_bindgen::prelude::*;
  6. use web_sys::{{Element, Node}};
  7. /*
  8. This is an autogenerated file from build.rs.
  9. Do not edit this file directly.
  10. */
  11. #[wasm_bindgen(inline_js = r##"{}"##)]
  12. extern "C" {{
  13. pub type Interpreter;
  14. #[wasm_bindgen(constructor)]
  15. pub fn new(arg: Element) -> Interpreter;
  16. #[wasm_bindgen(method)]
  17. pub fn set_node(this: &Interpreter, id: usize, node: Node);
  18. #[wasm_bindgen(method)]
  19. pub fn PushRoot(this: &Interpreter, root: u64);
  20. #[wasm_bindgen(method)]
  21. pub fn AppendChildren(this: &Interpreter, many: u32);
  22. #[wasm_bindgen(method)]
  23. pub fn ReplaceWith(this: &Interpreter, root: u64, m: u32);
  24. #[wasm_bindgen(method)]
  25. pub fn InsertAfter(this: &Interpreter, root: u64, n: u32);
  26. #[wasm_bindgen(method)]
  27. pub fn InsertBefore(this: &Interpreter, root: u64, n: u32);
  28. #[wasm_bindgen(method)]
  29. pub fn Remove(this: &Interpreter, root: u64);
  30. #[wasm_bindgen(method)]
  31. pub fn CreateTextNode(this: &Interpreter, text: &str, root: u64);
  32. #[wasm_bindgen(method)]
  33. pub fn CreateElement(this: &Interpreter, tag: &str, root: u64);
  34. #[wasm_bindgen(method)]
  35. pub fn CreateElementNs(this: &Interpreter, tag: &str, root: u64, ns: &str);
  36. #[wasm_bindgen(method)]
  37. pub fn CreatePlaceholder(this: &Interpreter, root: u64);
  38. #[wasm_bindgen(method)]
  39. pub fn NewEventListener(this: &Interpreter, name: &str, root: u64, handler: &Function);
  40. #[wasm_bindgen(method)]
  41. pub fn RemoveEventListener(this: &Interpreter, root: u64, name: &str);
  42. #[wasm_bindgen(method)]
  43. pub fn SetText(this: &Interpreter, root: u64, text: &str);
  44. #[wasm_bindgen(method)]
  45. pub fn SetAttribute(this: &Interpreter, root: u64, field: &str, value: &str, ns: Option<&str>);
  46. #[wasm_bindgen(method)]
  47. pub fn RemoveAttribute(this: &Interpreter, root: u64, field: &str);
  48. }}
  49. "###,
  50. dioxus_interpreter_js::INTERPRTER_JS
  51. );
  52. // write the bindings to a local file
  53. let mut file = File::create("src/bindings.rs").unwrap();
  54. file.write_all(src.as_bytes()).unwrap();
  55. }