Struct modalkit::editing::history::HistoryList

source ·
pub struct HistoryList<T> { /* private fields */ }
Expand description

A navigable collection of historical values.

Implementations§

source§

impl<T> HistoryList<T>

source

pub fn new(init: T, maxlen: usize) -> Self

Create a new history list.

maxlen controls how many items the history list holds besides the current value.

source

pub fn first(&self) -> &T

Get a reference to the oldest item in the list.

source

pub fn last(&self) -> &T

Get a reference to the most recent item in the list.

source

pub fn start(&mut self) -> &T

Move backwards through the history to the oldest item.

source

pub fn end(&mut self) -> &T

Move forwards through the history to the most recent item.

source

pub fn clear(&mut self)

Clear all previous and future history, leaving only the current value.

source

pub fn push(&mut self, item: T)

Push a new history item into the list at the current position, and remove any future values.

source

pub fn append(&mut self, item: T)

Fast-forward the history list so that all values are now in the past, and set a new current value.

source

pub fn select(&mut self, item: T)
where T: PartialEq,

If item is equivalent to the current value, then the current value is moved to the end of the history list, and all previously future values are now in the past.

Otherwise, if item is different from the current value, this behaves exactly like HistoryList::append.

This is useful for allowing users to navigate through historical values, select one, and make it the most recent value.

source

pub fn current_mut(&mut self) -> &mut T

Get a mutable reference to the value at the current position.

source

pub fn current(&self) -> &T

Get a reference to the value at the current position.

source

pub fn past_len(&self) -> usize

Returns the number of historical items preceding the current value.

source

pub fn future_len(&self) -> usize

Returns the number of historical items following the current value.

source

pub fn prev(&mut self, count: usize) -> &T

Move backwards through the history list.

source

pub fn next(&mut self, count: usize) -> &T

Move forwards through the history list.

source

pub fn navigate(&mut self, dir: MoveDir1D, count: usize) -> &T

Move forwards or backwards through the history list.

source

pub fn iter(&self) -> HistoryIterator<'_, T>

Iterate over the values within the history list.

source§

impl<T> HistoryList<T>
where T: CursorSearch<Cursor>,

source

pub fn find( &mut self, needle: &Regex, dir: MoveDir1D, incremental: bool ) -> Option<&T>

Find a matching element in this history list.

source§

impl HistoryList<EditRope>

source

pub fn recall( &mut self, current: &EditRope, scrollback: &mut ScrollbackState, dir: MoveDir1D, prefixed: bool, count: usize ) -> Option<EditRope>

Handle scrolling through prompt history.

Trait Implementations§

source§

impl<T> Adjustable for HistoryList<T>
where T: Adjustable,

source§

fn zero(&mut self)

Zero out the line and column of any contained cursors.
source§

fn adjust(&mut self, adjs: &[CursorAdjustment])

Apply a CursorAdjustment to any applicable cursors.
source§

impl<T: Clone> Clone for HistoryList<T>

source§

fn clone(&self) -> HistoryList<T>

Returns a copy 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<T> Default for HistoryList<T>
where T: Default,

source§

fn default() -> HistoryList<T>

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

impl<T, ID> GlobalAdjustable<ID> for HistoryList<T>

source§

fn zero_id(&mut self, id: &ID)

Zero out cursors associated with a given buffer.
source§

fn adjust_id(&mut self, id: &ID, adjs: &[CursorAdjustment])

Adjust cursors associated with a given buffer.

Auto Trait Implementations§

§

impl<T> Freeze for HistoryList<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for HistoryList<T>
where T: RefUnwindSafe,

§

impl<T> Send for HistoryList<T>
where T: Send,

§

impl<T> Sync for HistoryList<T>
where T: Sync,

§

impl<T> Unpin for HistoryList<T>
where T: Unpin,

§

impl<T> UnwindSafe for HistoryList<T>
where T: UnwindSafe,

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> Downcast for T
where T: Any,

source§

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>

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)

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)

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> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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,

§

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

§

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

§

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

source§

impl<T> CloneAny for T
where T: Any + Clone,

source§

impl<T> CloneAnySend for T
where T: Any + Send + Clone,

source§

impl<T> CloneAnySendSync for T
where T: Any + Send + Sync + Clone,

source§

impl<T> CloneAnySync for T
where T: Any + Sync + Clone,