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

source

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).

source

pub fn name(&self) -> JsValue

Returns a tag name of this XML node.

source

pub fn length(&self, txn: &ImplicitTransaction) -> u32

Returns a number of child XML nodes stored within this YXMlElement instance.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

pub fn parent(&self) -> JsValue

Returns a parent YXmlElement node or undefined if current node has no parent assigned.

source

pub fn to_string(&self, txn: &ImplicitTransaction) -> String

Returns a string representation of this XML node.

source

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.

source

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.

source

pub fn remove_attribute(&self, name: &str, txn: &ImplicitTransaction)

Removes an attribute from this XML node, given its name.

source

pub fn attributes(&self, txn: &ImplicitTransaction) -> JsValue

Returns an iterator that enables to traverse over all attributes of this XML node in unspecified order.

source

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.

source

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.

source

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

source§

fn from(value: YXmlElement) -> Self

Converts to this type from the input type.
source§

impl FromWasmAbi for YXmlElement

§

type Abi = u32

The wasm ABI type that this converts from when coming back out from the ABI boundary.
source§

unsafe fn from_abi(js: u32) -> Self

Recover a Self from Self::Abi. Read more
source§

impl IntoWasmAbi for YXmlElement

§

type Abi = u32

The wasm ABI type that this converts into when crossing the ABI boundary.
source§

fn into_abi(self) -> u32

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary.
source§

impl LongRefFromWasmAbi for YXmlElement

§

type Abi = u32

Same as RefFromWasmAbi::Abi
§

type Anchor = Ref<'static, YXmlElement>

Same as RefFromWasmAbi::Anchor
source§

unsafe fn long_ref_from_abi(js: Self::Abi) -> Self::Anchor

Same as RefFromWasmAbi::ref_from_abi
source§

impl OptionFromWasmAbi for YXmlElement

source§

fn is_none(abi: &Self::Abi) -> bool

Tests whether the argument is a “none” instance. If so it will be deserialized as None, and otherwise it will be passed to FromWasmAbi.
source§

impl OptionIntoWasmAbi for YXmlElement

source§

fn none() -> Self::Abi

Returns an ABI instance indicating “none”, which JS will interpret as the None branch of this option. Read more
source§

impl RefFromWasmAbi for YXmlElement

§

type Abi = u32

The wasm ABI type references to Self are recovered from.
§

type Anchor = Ref<'static, YXmlElement>

The type that holds the reference to 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§

unsafe fn ref_from_abi(js: Self::Abi) -> Self::Anchor

Recover a Self::Anchor from Self::Abi. Read more
source§

impl RefMutFromWasmAbi for YXmlElement

§

type Abi = u32

Same as RefFromWasmAbi::Abi
§

type Anchor = RefMut<'static, YXmlElement>

Same as RefFromWasmAbi::Anchor
source§

unsafe fn ref_mut_from_abi(js: Self::Abi) -> Self::Anchor

Same as RefFromWasmAbi::ref_from_abi
source§

impl TryFromJsValue for YXmlElement

§

type Error = JsValue

The type returned in the event of a conversion error.
source§

fn try_from_js_value(value: JsValue) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl VectorFromWasmAbi for YXmlElement

§

type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi

source§

unsafe fn vector_from_abi(js: Self::Abi) -> Box<[YXmlElement]>

source§

impl VectorIntoWasmAbi for YXmlElement

§

type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi

source§

fn vector_into_abi(vector: Box<[YXmlElement]>) -> Self::Abi

source§

impl WasmDescribe for YXmlElement

source§

impl WasmDescribeVector for YXmlElement

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ReturnWasmAbi for T
where T: IntoWasmAbi,

§

type Abi = <T as IntoWasmAbi>::Abi

Same as IntoWasmAbi::Abi
source§

fn return_abi(self) -> <T as ReturnWasmAbi>::Abi

Same as IntoWasmAbi::into_abi, except that it may throw and never return in the case of Err.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V