[][src]Enum cursive_core::utils::span::IndexedCow

pub enum IndexedCow {
    Borrowed {
        start: usize,
        end: usize,
    },
    Owned(String),
}

A span of text that can be either owned, or indexed in another String.

Variants

Borrowed

Indexes content in a separate string.

Fields of Borrowed

start: usize

Byte offset of the beginning of the span (inclusive)

end: usize

Byte offset of the end of the span (exclusive)

Owned(String)

Owns its content.

Implementations

impl IndexedCow[src]

pub fn resolve<'a>(&'a self, source: &'a str) -> &'a str[src]

Resolve the span to a string slice.

pub fn as_borrowed(&self) -> Option<(usize, usize)>[src]

Return the (start, end) indexes if self is IndexedCow::Borrowed.

pub fn as_owned(&self) -> Option<&str>[src]

Returns the embedded text content if self is IndexedCow::Owned.

pub fn from_cow(cow: Cow<'_, str>, source: &str) -> Self[src]

Returns an indexed view of the given item.

Note: it is assumed cow, if borrowed, is a substring of source.

pub fn is_empty(&self) -> bool[src]

Returns true if this represents an empty span.

pub fn offset(&mut self, offset: usize)[src]

If self is borrowed, offset its indices by the given value.

Useful to update spans when concatenating sources. This span will now point to text offset further in the source.

pub fn rev_offset(&mut self, offset: usize)[src]

If self is borrowed, offset its indices back by the given value.

Useful to update spans when removing a prefix from the source. This span will now point to text offset closer to the start of the source.

This span may become empty as a result.

Trait Implementations

impl<T> AsRef<IndexedCow> for IndexedSpan<T>[src]

impl Clone for IndexedCow[src]

impl Debug for IndexedCow[src]

impl Eq for IndexedCow[src]

impl Hash for IndexedCow[src]

impl PartialEq<IndexedCow> for IndexedCow[src]

impl StructuralEq for IndexedCow[src]

impl StructuralPartialEq for IndexedCow[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CallHasher for T where
    T: Hash + ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.