Struct ropey::RopeSlice[][src]

pub struct RopeSlice<'a>(_);

An immutable view into part of a Rope.

Methods

impl<'a> RopeSlice<'a>
[src]

Creates a RopeSlice from a string slice.

The resulting RopeSlice is very lightweight, and simply refers directly to the string slice.

This is primarily intended for avoiding the performance overhead of a full slice() operation when relevant. The slice() method is comparatively cheap, but it may nevertheless be too expensive for some tight inner loops because of the tree traversal it typically has to do.

A good example of this method's usage is in examples/graphemes_iter.rs, where it is used to significantly speed up the graphemes iterator.

Total number of bytes in the RopeSlice.

Total number of chars in the RopeSlice.

Total number of lines in the RopeSlice.

Returns the char index of the given byte.

Panics

Panics if byte_idx is out of bounds (i.e. byte_idx > len_bytes()).

Returns the line index of the given byte.

Notes:

  • Lines are zero-indexed.
  • If byte_idx is one-past-the-end, then one-past-the-end line index is returned. This is mainly unintuitive for empty ropes, which will return a line index of 1 for a byte_idx of zero. Otherwise it behaves as expected.

Panics

Panics if byte_idx is out of bounds (i.e. byte_idx > len_bytes()).

Returns the byte index of the given char.

Panics

Panics if char_idx is out of bounds (i.e. char_idx > len_chars()).

Returns the line index of the given char.

Notes:

  • Lines are zero-indexed.
  • If char_idx is one-past-the-end, then one-past-the-end line index is returned. This is mainly unintuitive for empty ropes, which will return a line index of 1 for a char_idx of zero. Otherwise it behaves as expected.

Panics

Panics if char_idx is out of bounds (i.e. char_idx > len_chars()).

Returns the byte index of the start of the given line.

Notes:

  • Lines are zero-indexed.
  • line_idx can be one-past-the-end, which will return one-past-the-end byte index.

Panics

Panics if line_idx is out of bounds (i.e. line_idx > len_lines()).

Returns the char index of the start of the given line.

Notes:

  • Lines are zero-indexed.
  • line_idx can be one-past-the-end, which will return one-past-the-end char index.

Panics

Panics if line_idx is out of bounds (i.e. line_idx > len_lines()).

Returns the char at char_idx.

Panics

Panics if char_idx is out of bounds (i.e. char_idx >= len_chars()).

Returns the line at line_idx.

Note: lines are zero-indexed.

Panics

Panics if line_idx is out of bounds (i.e. line_idx >= len_lines()).

Returns the chunk containing the given byte index, along with the byte and char indices of the beginning of the chunk.

The return value is organized as (chunk, chunk_byte_idx, chunk_char_idx).

Panics

Panics if byte_idx is out of bounds (i.e. byte_idx > len_bytes()).

Returns the chunk containing the given char index, along with the byte and char indices of the beginning of the chunk.

The return value is organized as (chunk, chunk_byte_idx, chunk_char_idx).

Panics

Panics if char_idx is out of bounds (i.e. char_idx > len_chars()).

Returns the entire contents of the RopeSlice as a str slice if possible.

Note that this method will typically fail, since the contents of a rope is generally not contiguous in memory.

This is intended for optimizing cases where the slice is a small part of the text (around the size of a few characters or words) and therefore has a high chance of being contiguous in memory.

Returns a sub-slice of the RopeSlice in the given char index range.

Uses range syntax, e.g. 2..7, 2.., etc. The range is in char indices.

Panics

Panics if the start of the range is greater than the end, or the end is out of bounds (i.e. end > len_chars()).

Important traits for Bytes<'a>

Creates an iterator over the bytes of the RopeSlice.

Important traits for Chars<'a>

Creates an iterator over the chars of the RopeSlice.

Important traits for Lines<'a>

Creates an iterator over the lines of the RopeSlice.

Important traits for Chunks<'a>

Creates an iterator over the chunks of the RopeSlice.

Returns the entire text of the RopeSlice as a newly allocated String.

Creates a new Rope from the contents of the RopeSlice.

Trait Implementations

impl<'a> Copy for RopeSlice<'a>
[src]

impl<'a> Clone for RopeSlice<'a>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a> Debug for RopeSlice<'a>
[src]

Formats the value using the given formatter. Read more

impl<'a> Display for RopeSlice<'a>
[src]

Formats the value using the given formatter. Read more

impl<'a, 'b> PartialEq<RopeSlice<'b>> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a, 'b> PartialEq<&'b str> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a, 'b> PartialEq<RopeSlice<'a>> for &'b str
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<str> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<RopeSlice<'a>> for str
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<String> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<RopeSlice<'a>> for String
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a, 'b> PartialEq<Cow<'b, str>> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a, 'b> PartialEq<RopeSlice<'a>> for Cow<'b, str>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<Rope> for RopeSlice<'a>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<RopeSlice<'a>> for Rope
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

impl<'a> Send for RopeSlice<'a>

impl<'a> Sync for RopeSlice<'a>