Skip to main content

TextVersion

Struct TextVersion 

Source
pub struct TextVersion {
    pub strs: u64,
    pub tags: u64,
    pub meta_tags: u64,
}
Expand description

A representation of how many changes took place in a Text.

The purpose of this struct is merely to be compared with previously acquired instances of itself, to just quickly check if certain properties of the Text have changed.

Note that this is a Text agnostic struct, comparing the TextVersions from two different Texts is pointless.

Fields§

§strs: u64

The current version of the Strs.

Any change to the Strs, even undoing, will incur a version increment.

§tags: u64

the current version of Tags.

Any change to the Tags, be it addition or removal of Tags, will incur a version increment.

§meta_tags: u64

The current version of meta Tags.

Meta tags are those that can change what is even shown on the screen, all else being equal. Any addition or removal of meta Tags will incur a version increment.

Implementations§

Source§

impl TextVersion

Source

pub fn has_changed_since(&self, other: Self) -> bool

Wether there have been any changes to the Text since this previous instance.

Source

pub fn strs_have_changed_since(&self, other: Self) -> bool

Wether the Strs have changed since this previous instance.

Source

pub fn tags_have_changed_since(&self, other: Self) -> bool

Wether the Tags have changed since this previous instance.

Note that this only tracks if Tags have been added/removed. So if, for example, you replace a range where no Tags existed, this would return false, even though the position of Tags have changed internally.

Source

pub fn has_structurally_changed_since(&self, other: Self) -> bool

Wether this Text has “structurally changed” since this previous instance.

A Text has structurally changed when printing it from the same point could result in a different characters being printed. This not only happens when the Strs change, but also with certain Tags, like Ghost and Conceal, which also add and remove characters to be printed.

These Tags are called “meta tags” internally, since they change the very structure of what Text has been printed.

Trait Implementations§

Source§

impl Clone for TextVersion

Source§

fn clone(&self) -> TextVersion

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TextVersion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for TextVersion

Source§

fn eq(&self, other: &TextVersion) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for TextVersion

Source§

impl Eq for TextVersion

Source§

impl StructuralPartialEq for TextVersion

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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

Source§

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.