#[repr(C)]pub struct YDelta {
pub tag: c_char,
pub len: u32,
pub insert: *mut YOutput,
pub attributes_len: u32,
pub attributes: *mut YDeltaAttr,
}
Expand description
A data type representing a single change detected over an observed YText
/YXmlText
. A type
of change can be detected using a tag
field:
Y_EVENT_CHANGE_ADD
marks a new characters added to a collection. In this caseinsert
field contains a pointer to a list of newly inserted values, whilelen
field informs about their count. Additionallyattributes_len
nadattributes
carry information about optional formatting attributes applied to edited blocks.Y_EVENT_CHANGE_DELETE
marks an existing elements removed from the collection. In this caselen
field informs about number of removed elements.Y_EVENT_CHANGE_RETAIN
marks a number of characters that have not been changed, counted from the previous element.len
field informs about number of retained elements. Additionallyattributes_len
nadattributes
carry information about optional formatting attributes applied to edited blocks.
A list of changes returned by ytext_event_delta
/yxmltext_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:
Y_EVENT_CHANGE_ADD
marks a new elements added to a collection. In this casevalues
field contains a pointer to a list of newly inserted values, whilelen
field informs about their count.Y_EVENT_CHANGE_DELETE
marks an existing elements removed from the collection. In this caselen
field informs about number of removed elements.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.
insert: *mut 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.
attributes_len: u32
A number of formatting attributes assigned to an edited area represented by this delta.
attributes: *mut YDeltaAttr
A nullable pointer to a list of formatting attributes assigned to an edited area represented by this delta.