#[repr(C)]pub struct YDeltaOut {
pub tag: u8,
pub len: u32,
pub attributes_len: u32,
pub attributes: *mut YDeltaAttr,
pub insert: *mut YOutput,
}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_ADDmarks a new characters added to a collection. In this caseinsertfield contains a pointer to a list of newly inserted values, whilelenfield informs about their count. Additionallyattributes_lenandattributescarry information about optional formatting attributes applied to edited blocks.Y_EVENT_CHANGE_DELETEmarks an existing elements removed from the collection. In this caselenfield informs about number of removed elements.Y_EVENT_CHANGE_RETAINmarks a number of characters that have not been changed, counted from the previous element.lenfield informs about number of retained elements. Additionallyattributes_lenandattributescarry 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: u8Tag field used to identify particular type of change made:
Y_EVENT_CHANGE_ADDmarks a new elements added to a collection. In this casevaluesfield contains a pointer to a list of newly inserted values, whilelenfield informs about their count.Y_EVENT_CHANGE_DELETEmarks an existing elements removed from the collection. In this caselenfield informs about number of removed elements.Y_EVENT_CHANGE_RETAINmarks a number of elements that have not been changed, counted from the previous element.lenfield informs about number of retained elements.
len: u32Number of element affected by current type of change. It can refer to a number of
inserted values, number of deleted element or a number of retained (unchanged) values.
attributes_len: u32A number of formatting attributes assigned to an edited area represented by this delta.
attributes: *mut YDeltaAttrA nullable pointer to a list of formatting attributes assigned to an edited area represented by this delta.
insert: *mut YOutputUsed 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.