[−][src]Enum persistent_rope::Rope
Variants
Implementations
impl Rope
[src]
pub fn new() -> Self
[src]
Examples
use persistent_rope::Rope; let rope = Rope::new(); assert_eq!(&rope, "");
pub fn len(&self) -> usize
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(rope.len(), 13);
pub fn bytes_len(&self) -> usize
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(rope.bytes_len(), 13);
pub fn chars_len(&self) -> usize
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("長さ"); assert_eq!(rope.chars_len(), 2);
pub fn is_empty(&self) -> bool
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert!(!rope.is_empty());
pub fn height(&self) -> usize
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("Hello"); let b = a.insert_at_byte(5, ", world!"); assert_eq!(b.height(), 2);
pub fn count_lines(&self) -> usize
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("Hello,\n"); let b = a.insert_at_byte(5, "world!\n"); assert_eq!(b.count_lines(), 2);
pub fn insert_at_byte<T>(&self, index: usize, value: T) -> Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
Examples
use persistent_rope::Rope; let rope = Rope::from("Helloworld!"); assert_eq!(&rope.insert_at_byte(5, ", "), "Hello, world!");
pub fn insert<T>(&self, index: usize, value: T) -> Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
Examples
use persistent_rope::Rope; let rope = Rope::from("長さ"); assert_eq!(&rope.insert(1, ", "), "長, さ");
pub fn insert_range_byte<T>(&self, range: Range<usize>, value: T) -> Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello world"); assert_eq!(&rope.insert_range_byte(5..6, ", "), "Hello, world"); assert_eq!(&rope.insert_range_byte(0..0, "!"), "!Hello world"); assert_eq!(&rope.insert_range_byte(11..11, "!"), "Hello world!");
pub fn insert_range<T>(&self, range: Range<usize>, value: T) -> Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
Examples
use persistent_rope::Rope; let rope = Rope::from("長 さ"); assert_eq!(&rope.insert_range(1..2, ", "), "長, さ"); assert_eq!(&rope.insert_range(0..0, "!"), "!長 さ"); assert_eq!(&rope.insert_range(3..3, "!"), "長 さ!");
pub fn insert_char_at_byte(&self, index: usize, ch: char) -> Rope
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("Hello").concat(" world"); let b = a.insert_char_at_byte(5, ','); let c = b.insert_char_at_byte(12, '!'); assert_eq!(&b, "Hello, world"); assert_eq!(&c, "Hello, world!");
pub fn insert_char(&self, index: usize, ch: char) -> Rope
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("長").concat("さ"); let b = a.insert_char(1, ','); let c = b.insert_char(3, '!'); assert_eq!(&b, "長,さ"); assert_eq!(&c, "長,さ!");
pub fn remove_range_byte(&self, range: Range<usize>) -> Rope
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(&rope.remove_range_byte(5..13), "Hello");
pub fn remove_range(&self, range: Range<usize>) -> Rope
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("長 さ"); assert_eq!(&rope.remove_range(1..2), "長さ");
pub fn remove_at_byte(&self, index: usize) -> Rope
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(&rope.remove_at_byte(12), "Hello, world"); assert_eq!(&rope.remove_at_byte(5), "Hello world!");
pub fn remove(&self, index: usize) -> Rope
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("長さ"); assert_eq!(&rope.remove(0), "さ"); assert_eq!(&rope.remove(1), "長");
pub fn split_at_byte(&self, index: usize) -> (Rope, Rope)
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); let (left, right) = rope.split_at_byte(7); assert_eq!(&left, "Hello, "); assert_eq!(&right, "world!"); let rope = Rope::new(); let (left, right) = rope.split_at_byte(0); assert_eq!(&left, ""); assert_eq!(&right, "");
pub fn split(&self, index: usize) -> (Rope, Rope)
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("長さ"); let (left, right) = rope.split(1); assert_eq!(&left, "長"); assert_eq!(&right, "さ");
pub fn concat<T>(&self, value: T) -> Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
Examples
use persistent_rope::Rope; let left = Rope::from("Hello, "); let right = Rope::from("world!"); assert_eq!(&left.concat(right), "Hello, world!");
pub fn concat_char(&self, ch: char) -> Rope
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello").concat(", world"); println!("{:?}", rope); assert_eq!(&rope.concat_char('!'), "Hello, world!");
pub fn char_at(&self, index: usize) -> Option<char>
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("長").concat(", さ!"); assert_eq!(rope.char_at(0), Some('長')); assert_eq!(rope.char_at(1), Some(',')); assert_eq!(rope.char_at(2), Some(' ')); assert_eq!(rope.char_at(3), Some('さ')); assert_eq!(rope.char_at(4), Some('!'));
pub fn chunks(&self) -> Chunks
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello").concat(", world!"); assert_eq!(rope.chunks().collect::<Vec<&String>>(), ["Hello", ", world!"].to_vec());
pub fn bytes(&self) -> Bytes
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello"); assert_eq!(rope.bytes().collect::<Vec<u8>>(), [72, 101, 108, 108, 111].to_vec());
pub fn chars(&self) -> Chars
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello"); assert_eq!(rope.chars().collect::<Vec<char>>(), ['H', 'e', 'l', 'l', 'o'].to_vec());
pub fn lines(&self) -> Lines
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello\n world!"); let lines = rope.lines().collect::<Vec<String>>(); assert_eq!(lines.get(0), Some(&String::from("Hello"))); assert_eq!(lines.get(1), Some(&String::from(" world!")));
pub fn iter(&self) -> Chars
[src]
Trait Implementations
impl<T> Add<T> for Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
type Output = Rope
The resulting type after applying the +
operator.
fn add(self, other: T) -> Self::Output
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("Hello"); let b = Rope::from(", world!"); assert_eq!(a.clone() + b, "Hello, world!"); assert_eq!(a + ", world!", "Hello, world!");
impl<'a, T> Add<T> for &'a Rope where
T: Into<Rope>,
[src]
T: Into<Rope>,
type Output = Rope
The resulting type after applying the +
operator.
fn add(self, other: T) -> Self::Output
[src]
Examples
use persistent_rope::Rope; let a = Rope::from("Hello"); let b = Rope::from(", world!"); assert_eq!(&a + &b, "Hello, world!"); assert_eq!(&a + b.clone(), "Hello, world!"); assert_eq!(a.clone() + &b, "Hello, world!");
impl Clone for Rope
[src]
fn clone(&self) -> Rope
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Rope
[src]
impl Eq for Rope
[src]
impl<'a> From<&'a Arc<Rope>> for Rope
[src]
impl<'a> From<&'a Rope> for Bytes<'a>
[src]
impl<'a> From<&'a Rope> for Chars<'a>
[src]
impl<'a> From<&'a Rope> for Chunks<'a>
[src]
impl<'a> From<&'a Rope> for Lines<'a>
[src]
impl<'a> From<&'a Rope> for Rope
[src]
impl<'a> From<&'a String> for Rope
[src]
impl<'a> From<&'a str> for Rope
[src]
impl From<Arc<Rope>> for Rope
[src]
impl From<String> for Rope
[src]
impl From<char> for Rope
[src]
impl Hash for Rope
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Into<String> for Rope
[src]
impl<'a> IntoIterator for &'a Rope
[src]
type Item = char
The type of the elements being iterated over.
type IntoIter = Chars<'a>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
impl Ord for Rope
[src]
fn cmp(&self, other: &Rope) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<'a> PartialEq<&'a str> for Rope
[src]
fn eq(&self, other: &&'a str) -> bool
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(&rope, "Hello, world!"); assert_ne!(&rope, "Hello!");
#[must_use]fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialEq<Rope> for Rope
[src]
impl PartialEq<String> for Rope
[src]
fn eq(&self, other: &String) -> bool
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(&rope, &String::from("Hello, world!")); assert_ne!(&rope, &String::from("Hello!"));
#[must_use]fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialEq<str> for Rope
[src]
fn eq(&self, other: &str) -> bool
[src]
Examples
use persistent_rope::Rope; let rope = Rope::from("Hello, world!"); assert_eq!(rope, "Hello, world!"); assert_ne!(rope, "Hello!");
#[must_use]fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialOrd<Rope> for Rope
[src]
fn partial_cmp(&self, other: &Rope) -> Option<Ordering>
[src]
fn lt(&self, other: &Rope) -> bool
[src]
fn le(&self, other: &Rope) -> bool
[src]
fn gt(&self, other: &Rope) -> bool
[src]
fn ge(&self, other: &Rope) -> bool
[src]
impl Send for Rope
[src]
impl StructuralEq for Rope
[src]
impl StructuralPartialEq for Rope
[src]
impl Sync for Rope
[src]
impl ToString for Rope
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,