pub struct FlowModel<'a> { /* private fields */ }Expand description
The paragraphs under a root in a content tree, for one frame’s editing.
Implementations§
Trait Implementations§
Source§impl Model for FlowModel<'_>
impl Model for FlowModel<'_>
Source§type Paragraph = Vec<usize>
type Paragraph = Vec<usize>
Names a paragraph. An edit may change what any paragraph is called, so
the editor holds only the positions the model hands back.
Source§fn text(&self, paragraph: &Vec<usize>) -> Option<String>
fn text(&self, paragraph: &Vec<usize>) -> Option<String>
The paragraph’s text, with a line break as
'\n' and a tab as '\t'.
None when the model has no such paragraph.Source§fn next(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
fn next(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
The editable paragraph after this one in document order.
Source§fn previous(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
fn previous(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
The editable paragraph before this one in document order.
Source§fn marked(
&self,
from: &Position<Vec<usize>>,
to: &Position<Vec<usize>>,
mark: Mark,
) -> Option<bool>
fn marked( &self, from: &Position<Vec<usize>>, to: &Position<Vec<usize>>, mark: Mark, ) -> Option<bool>
Whether the text from one position to another carries a mark:
Some
when all of it says the same, None when it differs. Two positions
that are the same answer for the text typed there would take its
formatting from. A model that keeps no formatting leaves this as it
is, which says nothing is marked, and refuses Edit::Format.Source§fn apply(
&mut self,
edit: Edit<'_, Vec<usize>>,
new_step: bool,
) -> Option<Position<Vec<usize>>>
fn apply( &mut self, edit: Edit<'_, Vec<usize>>, new_step: bool, ) -> Option<Position<Vec<usize>>>
Make an edit, and answer where the caret stands after it: after the
replacing text, at the start of the second half of a split, or for a
format at the end of the formatted text.
None refuses the edit and
leaves the document as it was. Read moreAuto Trait Implementations§
impl<'a> !Freeze for FlowModel<'a>
impl<'a> !RefUnwindSafe for FlowModel<'a>
impl<'a> !Send for FlowModel<'a>
impl<'a> !Sync for FlowModel<'a>
impl<'a> !UnwindSafe for FlowModel<'a>
impl<'a> Unpin for FlowModel<'a>
impl<'a> UnsafeUnpin for FlowModel<'a>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more