Skip to main content

Patch

Struct Patch 

Source
pub struct Patch { /* private fields */ }
Expand description

The recorded effect of one committed transaction. Re-apply it with Patch::apply (redo) or undo it with Patch::revert.

A patch only applies to the mesh that produced it, at the matching revision: revert needs the mesh exactly as the commit left it, apply needs it exactly as it was before the commit.

Implementations§

Source§

impl Patch

Source

pub fn changes(&self) -> &ChangeSet

The changes this patch makes when applied.

Source

pub fn is_empty(&self) -> bool

True when the transaction changed nothing.

Source

pub fn base_revision(&self) -> u64

Mesh revision before the commit.

Source

pub fn revision(&self) -> u64

Mesh revision after the commit.

Source

pub fn byte_size(&self) -> usize

Approximate heap memory held by this patch.

Source

pub fn apply(&self, mesh: &mut Mesh) -> Result<ChangeSet>

Re-applies the patch (redo). The mesh must be at Patch::base_revision. If memory runs out, the mesh is left unchanged.

Source

pub fn revert(&self, mesh: &mut Mesh) -> Result<ChangeSet>

Undoes the patch. The mesh must be at Patch::revision.

Source

pub fn release(&self, mesh: &mut Mesh, side: PatchSide)

Returns the slots this patch reserves to the mesh’s free lists, for a patch that is dropped without being undone or redone again: the removed slots for PatchSide::Undoable, the created slots for PatchSide::Redoable. Does nothing when the patch is stale (another mesh, or the mesh was compacted), because its slots no longer exist.

Call it at most once per patch, and only when the patch is discarded from a history. Calling it twice, or while a history still holds the patch, corrupts slot reuse.

Trait Implementations§

Source§

impl Clone for Patch

Source§

fn clone(&self) -> Patch

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Patch

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Patch

§

impl RefUnwindSafe for Patch

§

impl Send for Patch

§

impl Sync for Patch

§

impl Unpin for Patch

§

impl UnsafeUnpin for Patch

§

impl UnwindSafe for Patch

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.