[][src]Struct bytes::Rope

pub struct Rope { /* fields omitted */ }

An immutable sequence of bytes formed by concatenation of other ByteStr values, without copying the data in the pieces. The concatenation is represented as a tree whose leaf nodes are each a Bytes value.

Most of the operation here is inspired by the now-famous paper Ropes: an Alternative to Strings. hans-j. boehm, russ atkinson and michael plass.

Fundamentally the Rope algorithm represents the collection of pieces as a binary tree. BAP95 uses a Fibonacci bound relating depth to a minimum sequence length, sequences that are too short relative to their depth cause a tree rebalance. More precisely, a tree of depth d is "balanced" in the terminology of BAP95 if its length is at least F(d+2), where F(n) is the n-the Fibonacci number. Thus for depths 0, 1, 2, 3, 4, 5,... we have minimum lengths 1, 2, 3, 5, 8, 13,...

Methods

impl Rope[src]

pub fn from_slice(bytes: &[u8]) -> Rope[src]

pub fn of<B: ByteStr + 'static>(bytes: B) -> Rope[src]

Returns a Rope consisting of the supplied Bytes as a single segment.

pub fn len(&self) -> usize[src]

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

Trait Implementations

impl<'a> Source for &'a Rope[src]

type Error = BufError

impl ByteStr for Rope[src]

type Buf = RopeBuf

impl ToBytes for Rope[src]

impl Clone for Rope[src]

impl<B: ByteStr> PartialEq<B> for Rope[src]

impl Index<usize> for Rope[src]

type Output = u8

The returned type after indexing.

Auto Trait Implementations

impl Send for Rope

impl Sync for Rope

impl Unpin for Rope

impl UnwindSafe for Rope

impl RefUnwindSafe for Rope

Blanket Implementations

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

impl<T> From<T> for 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.

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

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

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