Trait pretty::DocAllocator[][src]

pub trait DocAllocator<'a, A = ()> {
    type Doc: Deref<Target = Doc<'a, Self::Doc, A>>;
    fn alloc(&'a self, _: Doc<'a, Self::Doc, A>) -> Self::Doc;

    fn nil(&'a self) -> DocBuilder<'a, Self, A> { ... }
fn newline(&'a self) -> DocBuilder<'a, Self, A> { ... }
fn space(&'a self) -> DocBuilder<'a, Self, A> { ... }
fn as_string<U: ToString>(&'a self, data: U) -> DocBuilder<'a, Self, A> { ... }
fn text<U: Into<Cow<'a, str>>>(&'a self, data: U) -> DocBuilder<'a, Self, A> { ... }
fn concat<I>(&'a self, docs: I) -> DocBuilder<'a, Self, A>
    where
        I: IntoIterator,
        I::Item: Into<Doc<'a, Self::Doc, A>>
, { ... }
fn intersperse<I, S>(
        &'a self,
        docs: I,
        separator: S
    ) -> DocBuilder<'a, Self, A>
    where
        I: IntoIterator,
        I::Item: Into<Doc<'a, Self::Doc, A>>,
        S: Into<Doc<'a, Self::Doc, A>> + Clone
, { ... } }

The DocAllocator trait abstracts over a type which can allocate (pointers to) Doc.

Associated Types

Required Methods

Provided Methods

Allocate an empty document.

Allocate a single newline.

Allocate a single space.

Allocate a document containing the text t.to_string().

The given text must not contain line breaks.

Allocate a document containing the given text.

The given text must not contain line breaks.

Allocate a document concatenating the given documents.

Allocate a document that intersperses the given separator S between the given documents [A, B, C, ..., Z], yielding [A, S, B, S, C, S, ..., S, Z].

Compare the intersperse method from the itertools crate.

Implementations on Foreign Types

impl<'a, D: ?Sized, A> DocAllocator<'a, A> for &'a D where
    D: DocAllocator<'a, A>, 
[src]

Implementors