Struct ywasm::YXmlElement
source · pub struct YXmlElement(/* private fields */);Expand description
XML element data type. It represents an XML node, which can contain key-value attributes
(interpreted as strings) as well as other nested XML elements or rich text (represented by
YXmlText type).
In terms of conflict resolution, YXmlElement uses following rules:
- Attribute updates use logical last-write-wins principle, meaning the past updates are automatically overridden and discarded by newer ones, while concurrent updates made by different peers are resolved into a single value using document id seniority to establish an order.
- Child node insertion uses sequencing rules from other Yrs collections - elements are inserted using interleave-resistant algorithm, where order of concurrent inserts at the same index is established using peer’s document id seniority.
Implementations§
source§impl YXmlElement
impl YXmlElement
sourcepub fn alive(&self, txn: &YTransaction) -> bool
pub fn alive(&self, txn: &YTransaction) -> bool
Checks if current YXmlElement reference is alive and has not been deleted by its parent collection. This method only works on already integrated shared types and will return false is current type is preliminary (has not been integrated into document).
sourcepub fn length(&self, txn: &ImplicitTransaction) -> u32
pub fn length(&self, txn: &ImplicitTransaction) -> u32
Returns a number of child XML nodes stored within this YXMlElement instance.
sourcepub fn insert_xml_element(
&self,
index: u32,
name: &str,
txn: &ImplicitTransaction
) -> YXmlElement
pub fn insert_xml_element( &self, index: u32, name: &str, txn: &ImplicitTransaction ) -> YXmlElement
Inserts a new instance of YXmlElement as a child of this XML node and returns it.
sourcepub fn insert_xml_text(&self, index: u32, txn: &ImplicitTransaction) -> YXmlText
pub fn insert_xml_text(&self, index: u32, txn: &ImplicitTransaction) -> YXmlText
Inserts a new instance of YXmlText as a child of this XML node and returns it.
sourcepub fn delete(&self, index: u32, length: Option<u32>, txn: &ImplicitTransaction)
pub fn delete(&self, index: u32, length: Option<u32>, txn: &ImplicitTransaction)
Removes a range of children XML nodes from this YXmlElement instance,
starting at given index.
sourcepub fn push_xml_element(
&self,
name: &str,
txn: &ImplicitTransaction
) -> YXmlElement
pub fn push_xml_element( &self, name: &str, txn: &ImplicitTransaction ) -> YXmlElement
Appends a new instance of YXmlElement as the last child of this XML node and returns it.
sourcepub fn push_xml_text(&self, txn: &ImplicitTransaction) -> YXmlText
pub fn push_xml_text(&self, txn: &ImplicitTransaction) -> YXmlText
Appends a new instance of YXmlText as the last child of this XML node and returns it.
sourcepub fn first_child(&self) -> JsValue
pub fn first_child(&self) -> JsValue
Returns a first child of this XML node.
It can be either YXmlElement, YXmlText or undefined if current node has not children.
sourcepub fn next_sibling(&self, txn: &ImplicitTransaction) -> JsValue
pub fn next_sibling(&self, txn: &ImplicitTransaction) -> JsValue
Returns a next XML sibling node of this XMl node.
It can be either YXmlElement, YXmlText or undefined if current node is a last child of
parent XML node.
sourcepub fn prev_sibling(&self, txn: &ImplicitTransaction) -> JsValue
pub fn prev_sibling(&self, txn: &ImplicitTransaction) -> JsValue
Returns a previous XML sibling node of this XMl node.
It can be either YXmlElement, YXmlText or undefined if current node is a first child
of parent XML node.
sourcepub fn parent(&self) -> JsValue
pub fn parent(&self) -> JsValue
Returns a parent YXmlElement node or undefined if current node has no parent assigned.
sourcepub fn to_string(&self, txn: &ImplicitTransaction) -> String
pub fn to_string(&self, txn: &ImplicitTransaction) -> String
Returns a string representation of this XML node.
sourcepub fn set_attribute(&self, name: &str, value: &str, txn: &ImplicitTransaction)
pub fn set_attribute(&self, name: &str, value: &str, txn: &ImplicitTransaction)
Sets a name and value as new attribute for this XML node. If an attribute with the same
name already existed on that node, its value with be overridden with a provided one.
sourcepub fn get_attribute(
&self,
name: &str,
txn: &ImplicitTransaction
) -> Option<String>
pub fn get_attribute( &self, name: &str, txn: &ImplicitTransaction ) -> Option<String>
Returns a value of an attribute given its name. If no attribute with such name existed,
null will be returned.
sourcepub fn remove_attribute(&self, name: &str, txn: &ImplicitTransaction)
pub fn remove_attribute(&self, name: &str, txn: &ImplicitTransaction)
Removes an attribute from this XML node, given its name.
sourcepub fn attributes(&self, txn: &ImplicitTransaction) -> JsValue
pub fn attributes(&self, txn: &ImplicitTransaction) -> JsValue
Returns an iterator that enables to traverse over all attributes of this XML node in unspecified order.
sourcepub fn tree_walker(&self, txn: &ImplicitTransaction) -> JsValue
pub fn tree_walker(&self, txn: &ImplicitTransaction) -> JsValue
Returns an iterator that enables a deep traversal of this XML node - starting from first child over this XML node successors using depth-first strategy.
sourcepub fn observe(&mut self, f: Function) -> YXmlObserver
pub fn observe(&mut self, f: Function) -> YXmlObserver
Subscribes to all operations happening over this instance of YXmlElement. All changes are
batched and eventually triggered during transaction commit phase.
Returns an YObserver which, when free’d, will unsubscribe current callback.
sourcepub fn observe_deep(&mut self, f: Function) -> YEventObserver
pub fn observe_deep(&mut self, f: Function) -> YEventObserver
Subscribes to all operations happening over this Y shared type, as well as events in
shared types stored within this one. All changes are batched and eventually triggered
during transaction commit phase.
Returns an YEventObserver which, when free’d, will unsubscribe current callback.
Trait Implementations§
source§impl From<YXmlElement> for JsValue
impl From<YXmlElement> for JsValue
source§fn from(value: YXmlElement) -> Self
fn from(value: YXmlElement) -> Self
source§impl FromWasmAbi for YXmlElement
impl FromWasmAbi for YXmlElement
source§impl IntoWasmAbi for YXmlElement
impl IntoWasmAbi for YXmlElement
source§impl LongRefFromWasmAbi for YXmlElement
impl LongRefFromWasmAbi for YXmlElement
source§impl OptionFromWasmAbi for YXmlElement
impl OptionFromWasmAbi for YXmlElement
source§impl OptionIntoWasmAbi for YXmlElement
impl OptionIntoWasmAbi for YXmlElement
source§impl RefFromWasmAbi for YXmlElement
impl RefFromWasmAbi for YXmlElement
§type Anchor = Ref<'static, YXmlElement>
type Anchor = Ref<'static, YXmlElement>
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.source§impl RefMutFromWasmAbi for YXmlElement
impl RefMutFromWasmAbi for YXmlElement
source§impl TryFromJsValue for YXmlElement
impl TryFromJsValue for YXmlElement
source§impl VectorFromWasmAbi for YXmlElement
impl VectorFromWasmAbi for YXmlElement
type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi
unsafe fn vector_from_abi(js: Self::Abi) -> Box<[YXmlElement]>
source§impl VectorIntoWasmAbi for YXmlElement
impl VectorIntoWasmAbi for YXmlElement
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi
fn vector_into_abi(vector: Box<[YXmlElement]>) -> Self::Abi
source§impl WasmDescribeVector for YXmlElement
impl WasmDescribeVector for YXmlElement
Auto Trait Implementations§
impl !RefUnwindSafe for YXmlElement
impl !Send for YXmlElement
impl !Sync for YXmlElement
impl Unpin for YXmlElement
impl !UnwindSafe for YXmlElement
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::Abisource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.