Struct yrs::YEventChange

source ·
#[repr(C)]
pub struct YEventChange { pub tag: c_char, pub len: u32, pub values: *const YOutput, }
Expand description

A data type representing a single change detected over an observed shared collection. A type of change can be detected using a tag field:

  1. Y_EVENT_CHANGE_ADD marks a new elements added to a collection. In this case values field contains a pointer to a list of newly inserted values, while len field informs about their count.
  2. Y_EVENT_CHANGE_DELETE marks an existing elements removed from the collection. In this case len field informs about number of removed elements.
  3. Y_EVENT_CHANGE_RETAIN marks a number of elements that have not been changed, counted from the previous element. len field informs about number of retained elements.

A list of changes returned by yarray_event_delta/yxml_event_delta enables to locate a position of all changes within an observed collection by using a combination of added/deleted change structs separated by retained changes (marking eg. number of elements that can be safely skipped, since they remained unchanged).

Fields§

§tag: c_char

Tag field used to identify particular type of change made:

  1. Y_EVENT_CHANGE_ADD marks a new elements added to a collection. In this case values field contains a pointer to a list of newly inserted values, while len field informs about their count.
  2. Y_EVENT_CHANGE_DELETE marks an existing elements removed from the collection. In this case len field informs about number of removed elements.
  3. Y_EVENT_CHANGE_RETAIN marks a number of elements that have not been changed, counted from the previous element. len field informs about number of retained elements.
§len: u32

Number of element affected by current type of a change. It can refer to a number of inserted values, number of deleted element or a number of retained (unchanged) values.

§values: *const YOutput

Used in case when current change is of Y_EVENT_CHANGE_ADD type. Contains a list (of length stored in len field) of newly inserted values.

Trait Implementations§

source§

impl Drop for YEventChange

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a> From<&'a Change> for YEventChange

source§

fn from(change: &'a Change) -> Self

Converts to this type from the input type.

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