skima 0.1.0

Rust structural UI library for web
Documentation
use wasm_bindgen::JsValue;
use web_sys::{Node, Range};

#[allow(unused)]
pub struct Cursor {
	pub range: Range,
}

impl Cursor {
	pub fn before(node: &Node) -> Result<Self, JsValue> {
		let document = node.owner_document().expect("Node should be attached");
		let range = document.create_range()?;
		range.set_start_before(&node)?;
		range.set_end_before(&node)?;
		Ok(Cursor { range })
	}

	pub fn after(node: &Node) -> Result<Self, JsValue> {
		let document = node.owner_document().expect("Node should be attached");
		let range = document.create_range()?;
		range.set_start_after(&node)?;
		range.set_end_after(&node)?;
		Ok(Cursor { range })
	}

	pub fn beginning_of(node: &Node) -> Result<Self, JsValue> {
		let document = node.owner_document().expect("Node should be attached");
		let range = document.create_range()?;
		range.set_start(&node, 0)?;
		range.set_end(&node, 0)?;
		Ok(Cursor { range })
	}
}