Dot

Enum Dot 

Source
pub enum Dot {
    Cur {
        c: Cur,
    },
    Range {
        r: Range,
    },
}
Expand description

A Dot represents the currently selected contents of a Buffer.

Most of the editing commands available in ad which manipulate the buffer contents do so via setting and manipulating the current dot. The name comes from the fact that the representation of the current Dot in the editing language is .

Variants§

§

Cur

A single character [Cur]

Fields

§c: Cur

The cursor

§

Range

A [Range] between two cursors

Fields

§r: Range

The range

Implementations§

Source§

impl Dot

Source

pub fn from_char_indices(from: usize, to: usize) -> Self

Construct a new [Range] dot from two cursor indices.

to will be used as the active cursor position.

Source

pub fn as_char_indices(&self) -> (usize, usize)

Convert a Dot into character offsets within the buffer idendifying its start and end positions.

For a [Cur] dot the start and end are equal

Source

pub fn n_chars(&self) -> usize

The number of characters contained within this Dot.

Source

pub fn is_cur(&self) -> bool

Whether or not this dot is a [Cur].

Source

pub fn is_range(&self) -> bool

Whether or not this dot is a [Range].

Source

pub fn contains(&self, cur: &Cur) -> bool

Whether or not this dot contains cur within it.

Source

pub fn contains_range(&self, rng: &Range) -> bool

Whether or not this dot contains all of rng within it.

Source

pub fn addr(&self, b: &Buffer) -> String

The address representation of this dot in the form that is enterable by the user. Indices are 1-based rather than their internal 0-based representation.

Source

pub fn content(&self, b: &Buffer) -> String

Use this Dot to index in to a Buffer and extract the range of text it denotes.

Source

pub fn active_cur(&self) -> Cur

The active cursor position for this Dot which will be manipulated by movement operations

Source

pub fn set_active_cur(&mut self, cur: Cur)

Set the active cursor position for this Dot directly, replacing the current active cursor.

Source

pub fn first_cur(&self) -> Cur

The cursor position closest to the start of the Buffer.

Source

pub fn last_cur(&self) -> Cur

The cursor position closest to the end of the Buffer.

Source

pub fn as_range(&self) -> Range

This Dot expressed as a [Range].

For range dots the underlying range is returned directly. For cursor dots a new range is constructed where start and end are equal and the end is the active cursor.

Source

pub fn collapse_to_first_cur(&self) -> Self

The Dot equivalent of Dot::first_cur.

Source

pub fn collapse_to_last_cur(&self) -> Self

The Dot equivalent of Dot::last_cur.

Source

pub fn flip(&mut self)

Swap the active cursor between start and end of [Range] dots.

Trait Implementations§

Source§

impl Clone for Dot

Source§

fn clone(&self) -> Dot

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 Dot

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Dot

Source§

fn default() -> Self

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

impl Ord for Dot

Source§

fn cmp(&self, other: &Dot) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Dot

Source§

fn eq(&self, other: &Dot) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Dot

Source§

fn partial_cmp(&self, other: &Dot) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for Dot

Source§

impl Eq for Dot

Source§

impl StructuralPartialEq for Dot

Auto Trait Implementations§

§

impl Freeze for Dot

§

impl RefUnwindSafe for Dot

§

impl Send for Dot

§

impl Sync for Dot

§

impl Unpin for Dot

§

impl UnwindSafe for Dot

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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more