pub struct Transform { /* private fields */ }Expand description
An accumulating, invertible batch of document changes.
Implementations§
Source§impl Transform
impl Transform
Sourcepub fn doc_before(&self, i: usize) -> &Node
pub fn doc_before(&self, i: usize) -> &Node
The document before step i.
Sourcepub fn doc_changed(&self) -> bool
pub fn doc_changed(&self) -> bool
Whether any step has been applied.
Sourcepub fn step(
&mut self,
step: Box<dyn Step>,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn step( &mut self, step: Box<dyn Step>, schema: &Schema, ) -> Result<&mut Self, StepError>
Apply step, recording the prior document and its map.
Sourcepub fn replace(
&mut self,
from: usize,
to: usize,
slice: Slice,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn replace( &mut self, from: usize, to: usize, slice: Slice, schema: &Schema, ) -> Result<&mut Self, StepError>
Replace from..to with slice.
Sourcepub fn delete(
&mut self,
from: usize,
to: usize,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn delete( &mut self, from: usize, to: usize, schema: &Schema, ) -> Result<&mut Self, StepError>
Delete from..to.
Sourcepub fn insert(
&mut self,
pos: usize,
slice: Slice,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn insert( &mut self, pos: usize, slice: Slice, schema: &Schema, ) -> Result<&mut Self, StepError>
Insert slice at pos.
Sourcepub fn add_mark(
&mut self,
from: usize,
to: usize,
mark: Mark,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn add_mark( &mut self, from: usize, to: usize, mark: Mark, schema: &Schema, ) -> Result<&mut Self, StepError>
Add mark across from..to.
Sourcepub fn remove_mark(
&mut self,
from: usize,
to: usize,
mark: Mark,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn remove_mark( &mut self, from: usize, to: usize, mark: Mark, schema: &Schema, ) -> Result<&mut Self, StepError>
Remove mark across from..to.
Sourcepub fn split(
&mut self,
pos: usize,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn split( &mut self, pos: usize, schema: &Schema, ) -> Result<&mut Self, StepError>
Split the textblock at pos into two blocks of the same type
(depth-1 split — the common Enter behaviour).
Sourcepub fn split_at_depth(
&mut self,
pos: usize,
levels: usize,
schema: &Schema,
) -> Result<&mut Self, StepError>
pub fn split_at_depth( &mut self, pos: usize, levels: usize, schema: &Schema, ) -> Result<&mut Self, StepError>
Split at pos all the way up to levels ancestors (so levels = 1
is the regular textblock split, levels = 2 splits a list_item +
its paragraph, etc.). The split inserts levels pairs of (close,
open) at pos; everything before stays in the first copy of each
wrapper, everything after moves into the second.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Transform
impl !UnwindSafe for Transform
impl Freeze for Transform
impl Send for Transform
impl Sync for Transform
impl Unpin for Transform
impl UnsafeUnpin for Transform
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more