Enum sauron::prelude::mt_dom::Node [−]
pub enum Node<NS, TAG, ATT, VAL> where
TAG: PartialEq<TAG> + Clone + Debug,
NS: PartialEq<NS> + Clone + Debug,
ATT: PartialEq<ATT> + Clone + Debug,
VAL: PartialEq<VAL> + Clone + Debug, {
Element(Element<NS, TAG, ATT, VAL>),
Text(Text),
}
Expand description
represents a node in a virtual dom A node could be an element which can contain one or more children of nodes. A node could also be just a text node which contains a string
Much of the types are Generics
NS - is the type for the namespace, this will be &’static str when used in html based virtual dom implementation TAG - is the type for the element tag, this will be &’static str when used in html based virtual dom impmenentation ATT - is the type for the attribute name, this will be &’static str when used in html based virtual dom implementation VAL - is the type for the value of the attribute, this will be String, f64, or just another generics that suits the implementing library which used mt-dom for just dom-diffing purposes
Variants
Element(Element<NS, TAG, ATT, VAL>)
Element variant of a virtual node
Text(Text)
Text variant of a virtual node
Implementations
pub fn take_element(self) -> Option<Element<NS, TAG, ATT, VAL>>
pub fn take_element(self) -> Option<Element<NS, TAG, ATT, VAL>>
consume self and return the element if it is an element variant None if it is a text node
pub fn as_element_mut(&mut self) -> Option<&mut Element<NS, TAG, ATT, VAL>>
pub fn as_element_mut(&mut self) -> Option<&mut Element<NS, TAG, ATT, VAL>>
Get a mutable reference to the element, if this node is an element node
pub fn as_element_ref(&self) -> Option<&Element<NS, TAG, ATT, VAL>>
pub fn as_element_ref(&self) -> Option<&Element<NS, TAG, ATT, VAL>>
returns a reference to the element if this is an element node
pub fn add_children(
self,
children: Vec<Node<NS, TAG, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
pub fn add_children(
self,
children: Vec<Node<NS, TAG, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
Consume a mutable self and add a children to this node it if is an element will have no effect if it is a text node. This is used in building the nodes in a builder pattern
pub fn add_children_ref_mut(
&mut self,
children: Vec<Node<NS, TAG, ATT, VAL>, Global>
)
pub fn add_children_ref_mut(
&mut self,
children: Vec<Node<NS, TAG, ATT, VAL>, Global>
)
add children but not consume self
pub fn add_attributes(
self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
pub fn add_attributes(
self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
add attributes to the node and returns itself this is used in view building
pub fn add_attributes_ref_mut(
&mut self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
)
pub fn add_attributes_ref_mut(
&mut self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
)
add attributes using a mutable reference to self
pub fn get_attributes(&self) -> Option<&[Attribute<NS, ATT, VAL>]>
pub fn get_attributes(&self) -> Option<&[Attribute<NS, ATT, VAL>]>
get the attributes of this node returns None if it is a text node
returns the tag of this node if it is an element otherwise None if it is a text node
pub fn get_children(&self) -> Option<&[Node<NS, TAG, ATT, VAL>]>
pub fn get_children(&self) -> Option<&[Node<NS, TAG, ATT, VAL>]>
return the children of this node if it is an element returns None if it is a text node
pub fn get_children_count(&self) -> usize
pub fn get_children_count(&self) -> usize
Return the count of the children of this node
pub fn children_mut(&mut self) -> Option<&mut [Node<NS, TAG, ATT, VAL>]>
pub fn children_mut(&mut self) -> Option<&mut [Node<NS, TAG, ATT, VAL>]>
return the children of this node if it is an element returns None if it is a text node
pub fn swap_remove_child(&mut self, index: usize) -> Node<NS, TAG, ATT, VAL>
pub fn swap_remove_child(&mut self, index: usize) -> Node<NS, TAG, ATT, VAL>
Removes an child node from this element and returns it.
The removed child is replaced by the last child of the element’s children.
Panics
Panics if this is a text node
pub fn swap_children(&mut self, a: usize, b: usize)
pub fn swap_children(&mut self, a: usize, b: usize)
pub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
Returns the total number of nodes on this node tree, that is counting the direct and indirect child nodes of this node.
pub fn descendant_node_count(&self) -> usize
pub fn descendant_node_count(&self) -> usize
only count the descendant node
pub fn set_attributes_ref_mut(
&mut self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
)
pub fn set_attributes_ref_mut(
&mut self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
)
remove the existing attributes and set with the new value
pub fn merge_attributes(
self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
pub fn merge_attributes(
self,
attributes: Vec<Attribute<NS, ATT, VAL>, Global>
) -> Node<NS, TAG, ATT, VAL>
merge to existing attributes if the attribute name already exist
pub fn zipper(self) -> Zipper<NS, TAG, ATT, VAL>
pub fn zipper(self) -> Zipper<NS, TAG, ATT, VAL>
create a Zipper for a Node
Trait Implementations
impl<MSG> NodeMapMsg<MSG> for Node<&'static str, &'static str, &'static str, AttributeValue<MSG>> where
MSG: 'static,
impl<MSG> NodeMapMsg<MSG> for Node<&'static str, &'static str, &'static str, AttributeValue<MSG>> where
MSG: 'static,
map the msg of callback of this element node
pub fn map_callback<MSG2>(
self,
cb: Callback<MSG, MSG2>
) -> Node<&'static str, &'static str, &'static str, AttributeValue<MSG2>> where
MSG2: 'static,
pub fn map_callback<MSG2>(
self,
cb: Callback<MSG, MSG2>
) -> Node<&'static str, &'static str, &'static str, AttributeValue<MSG2>> where
MSG2: 'static,
map the msg of callback of this element node
render instance to a writable buffer with indention node_idx is for debugging purposes Read more
render the node to a writable buffer
no new_lines, no indents
render compressed html to string
render to string with nice indention
get the first attribute value with this attribute name
return the boolean value of the “focus” attribute of this node
Auto Trait Implementations
impl<NS, TAG, ATT, VAL> RefUnwindSafe for Node<NS, TAG, ATT, VAL> where
ATT: RefUnwindSafe,
NS: RefUnwindSafe,
TAG: RefUnwindSafe,
VAL: RefUnwindSafe,
impl<NS, TAG, ATT, VAL> Send for Node<NS, TAG, ATT, VAL> where
ATT: Send,
NS: Send,
TAG: Send,
VAL: Send,
impl<NS, TAG, ATT, VAL> Sync for Node<NS, TAG, ATT, VAL> where
ATT: Sync,
NS: Sync,
TAG: Sync,
VAL: Sync,
impl<NS, TAG, ATT, VAL> Unpin for Node<NS, TAG, ATT, VAL> where
ATT: Unpin,
NS: Unpin,
TAG: Unpin,
VAL: Unpin,
impl<NS, TAG, ATT, VAL> UnwindSafe for Node<NS, TAG, ATT, VAL> where
ATT: UnwindSafe,
NS: UnwindSafe,
TAG: UnwindSafe,
VAL: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more