mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-12-26 04:23:08 +00:00
72 lines
2 KiB
Rust
72 lines
2 KiB
Rust
use std::{fs::File, io::Write};
|
|
|
|
fn main() {
|
|
let src = format!(
|
|
r###"
|
|
use js_sys::Function;
|
|
use wasm_bindgen::prelude::*;
|
|
use web_sys::{{Element, Node}};
|
|
|
|
#[wasm_bindgen(inline_js = r##"{}"##)]
|
|
extern "C" {{
|
|
pub type Interpreter;
|
|
|
|
#[wasm_bindgen(constructor)]
|
|
pub fn new(arg: Element) -> Interpreter;
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn set_node(this: &Interpreter, id: usize, node: Node);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn PushRoot(this: &Interpreter, root: u64);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn AppendChildren(this: &Interpreter, many: u32);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn ReplaceWith(this: &Interpreter, root: u64, m: u32);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn InsertAfter(this: &Interpreter, root: u64, n: u32);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn InsertBefore(this: &Interpreter, root: u64, n: u32);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn Remove(this: &Interpreter, root: u64);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn CreateTextNode(this: &Interpreter, text: &str, root: u64);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn CreateElement(this: &Interpreter, tag: &str, root: u64);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn CreateElementNs(this: &Interpreter, tag: &str, root: u64, ns: &str);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn CreatePlaceholder(this: &Interpreter, root: u64);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn NewEventListener(this: &Interpreter, name: &str, root: u64, handler: &Function);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn RemoveEventListener(this: &Interpreter, root: u64, name: &str);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn SetText(this: &Interpreter, root: u64, text: &str);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn SetAttribute(this: &Interpreter, root: u64, field: &str, value: &str, ns: Option<&str>);
|
|
|
|
#[wasm_bindgen(method)]
|
|
pub fn RemoveAttribute(this: &Interpreter, root: u64, field: &str);
|
|
}}
|
|
"###,
|
|
dioxus_interpreter_js::INTERPRTER_JS
|
|
);
|
|
|
|
// write the bindings to a local file
|
|
let mut file = File::create("src/bindings.rs").unwrap();
|
|
file.write_all(src.as_bytes()).unwrap();
|
|
}
|