Crate sauron::prelude::mt_dom [−]
Expand description
mt-dom is a generic virtual dom implementation which doesn’t specify the types of the data that is being processed. It’s up to the library user to specify those types
The goal of this library is to provide virtual dom diffing functionality and return a portable patches which the user can then use to apply those patches in their respective UI elements.
mt-dom is not limited to be used in html base virtual-dom implementation, but can also be use for native UI elements.
Modules
apply patches for verifying the patches are correct when current_dom will be equal to the target_dom when patches is applied.
provides diffing algorithm which returns patches
patch module
Structs
These are the plain attributes of an element
Represents an element of the virtual node
An element has a generic tag, this tag could be a static str tag, such as usage in html dom.
Example of which are div
, a
, input
, img
, etc.
Text node
Enums
Attribute Value which can be a plain attribute or a callback
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
A Patch encodes an operation that modifies a real DOM element or native UI element
Functions
had to find the node each time, since rust does not allow multiple mutable borrows ISSUE: once a destructive patch such as RemoveChildren, InsertNode, ReplaceNode is applied the Nodeidx is not synch with the root_node anymore.
Create an attribute
Create an attribute with namespace
calculate the difference of 2 nodes
create a virtual node with tag, attrs and children
create a virtual node with namespace, tag, attrs and children
group attributes of the same name
merge the values of attributes with the same name
create an attribute from callback
Create a textnode element
Type Definitions
NodeIdx alias type