Selections

Struct Selections 

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

The list of Selections in a Text

This list can contain any number of Selections, and they should be usable in whatever order the end user may want, without breaking from, for example, modifications that should move cursors backwards or ahead. If that is not the case, report it as a bug.

they are primarily meant to be interacted with from the Handle, with its edit_ methods meant to efficiently handle a large number of Selections in an efficient manner, although you can interact with them separately.

A Text will keep itself in check with regards to its Selections, that is, it will automatically remove and add the MainCaret and ExtraCaret tags when the Selections are altered. If it fails to do that, report it as a bug.

Implementations§

Source§

impl Selections

Source

pub fn set_main(&mut self, new: usize)

Sets the main Selection

Source

pub fn rotate_main(&mut self, amount: i32)

Rotates the main Selection by an amount

Source

pub fn clear(&mut self)

Removes all Selections

Source

pub fn reset(&mut self)

Removes all Selections and adds a default Selection as main

Source

pub fn remove_extras(&mut self)

Removes all but the main Selection

Source

pub fn main(&self) -> &Selection

Gets the main Selection

§Panics

This method will panic if there are no Selections. If you want a non-panicking method, see Selections::get_main.

Source

pub fn get_main(&self) -> Option<&Selection>

Gets the main Selection, if there is one

If you want a method that doesn’t return an Option (for convenience), see Selections::main.

Source

pub fn get(&self, n: usize) -> Option<&Selection>

Gets the nth Selection if there is one

Source

pub fn iter(&self) -> impl Iterator<Item = (&Selection, bool)>

Iterates over all Selections in order

Also tells you wether the Selection is the main selection or not.

Source

pub fn iter_within( &self, range: impl TextRange, ) -> impl Iterator<Item = (usize, &Selection, bool)>

Iterates over all Selections in a given TextRange

Also tells you the index of the Selection, as well as if it is the main selection or not.

This Iterator will include Selections that are partially contained.

Source

pub fn main_index(&self) -> usize

The index of the main Selection

Source

pub fn len(&self) -> usize

How many Selections there are in the list

Source

pub fn is_empty(&self) -> bool

Returns true when there are no Selections

Trait Implementations§

Source§

impl Clone for Selections

Source§

fn clone(&self) -> Self

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 Selections

Source§

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

Formats the value using the given formatter. Read more

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

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.