Skip to main content

PaneInteractionTimeline

Struct PaneInteractionTimeline 

Source
pub struct PaneInteractionTimeline {
    pub baseline: Option<PaneTreeSnapshot>,
    pub entries: Vec<PaneInteractionTimelineEntry>,
    pub cursor: usize,
}
Expand description

Persistent interaction timeline with undo/redo cursor.

Fields§

§baseline: Option<PaneTreeSnapshot>

Baseline tree before first recorded mutation.

§entries: Vec<PaneInteractionTimelineEntry>

Full operation history in deterministic order.

§cursor: usize

Number of entries currently applied (<= entries.len()).

Implementations§

Source§

impl PaneInteractionTimeline

Source

pub fn with_baseline(tree: &PaneTree) -> Self

Construct a timeline with an explicit baseline snapshot.

Source

pub const fn applied_len(&self) -> usize

Number of currently-applied entries.

Source

pub fn apply_and_record( &mut self, tree: &mut PaneTree, sequence: u64, operation_id: u64, operation: PaneOperation, ) -> Result<PaneOperationOutcome, PaneOperationError>

Append one operation by applying it to the provided tree.

If the cursor is behind the head (after undo), redo entries are dropped before appending the new branch.

Source

pub fn undo( &mut self, tree: &mut PaneTree, ) -> Result<bool, PaneInteractionTimelineError>

Undo the last applied entry by deterministic rebuild from baseline.

Source

pub fn redo( &mut self, tree: &mut PaneTree, ) -> Result<bool, PaneInteractionTimelineError>

Redo one entry by deterministic rebuild from baseline.

Source

pub fn replay(&self) -> Result<PaneTree, PaneInteractionTimelineError>

Rebuild a new tree from baseline and currently-applied entries.

Trait Implementations§

Source§

impl Clone for PaneInteractionTimeline

Source§

fn clone(&self) -> PaneInteractionTimeline

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 PaneInteractionTimeline

Source§

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

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

impl Default for PaneInteractionTimeline

Source§

fn default() -> PaneInteractionTimeline

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for PaneInteractionTimeline

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for PaneInteractionTimeline

Source§

fn eq(&self, other: &PaneInteractionTimeline) -> 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 Serialize for PaneInteractionTimeline

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for PaneInteractionTimeline

Source§

impl StructuralPartialEq for PaneInteractionTimeline

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,