pub struct Arena<'a, A = ()> { /* private fields */ }
Expand description
An arena which can be used to allocate Doc
values.
Implementations
Trait Implementations
sourceimpl<'a, A> DocAllocator<'a, A> for Arena<'a, A>
impl<'a, A> DocAllocator<'a, A> for Arena<'a, A>
type Doc = RefDoc<'a, A>
fn alloc(&'a self, doc: Doc<'a, Self::Doc, A>) -> Self::Doc
fn alloc_column_fn(
&'a self,
f: impl Fn(usize) -> Self::Doc + 'a
) -> <Self::Doc as DocPtr<'a, A>>::ColumnFn
fn alloc_width_fn(
&'a self,
f: impl Fn(isize) -> Self::Doc + 'a
) -> <Self::Doc as DocPtr<'a, A>>::WidthFn
fn alloc_cow(&'a self, doc: BuildDoc<'a, Self::Doc, A>) -> Self::Doc
sourcefn nil(&'a self) -> DocBuilder<'a, Self, A>
fn nil(&'a self) -> DocBuilder<'a, Self, A>
Allocate an empty document.
sourcefn fail(&'a self) -> DocBuilder<'a, Self, A>
fn fail(&'a self) -> DocBuilder<'a, Self, A>
Fails document rendering immediately. Read more
sourcefn hardline(&'a self) -> DocBuilder<'a, Self, A>
fn hardline(&'a self) -> DocBuilder<'a, Self, A>
Allocate a single hardline.
fn space(&'a self) -> DocBuilder<'a, Self, A>
sourcefn line(&'a self) -> DocBuilder<'a, Self, A>
fn line(&'a self) -> DocBuilder<'a, Self, A>
A line acts like a \n
but behaves like space
if it is grouped on a single line.
sourcefn line_(&'a self) -> DocBuilder<'a, Self, A>
fn line_(&'a self) -> DocBuilder<'a, Self, A>
Acts like line
but behaves like nil
if grouped on a single line Read more
sourcefn softline(&'a self) -> DocBuilder<'a, Self, A>
fn softline(&'a self) -> DocBuilder<'a, Self, A>
A softline
acts like space
if the document fits the page, otherwise like line
sourcefn softline_(&'a self) -> DocBuilder<'a, Self, A>
fn softline_(&'a self) -> DocBuilder<'a, Self, A>
A softline_
acts like nil
if the document fits the page, otherwise like line_
sourcefn as_string<U: Display>(&'a self, data: U) -> DocBuilder<'a, Self, A>
fn as_string<U: Display>(&'a self, data: U) -> DocBuilder<'a, Self, A>
Allocate a document containing the text t.to_string()
. Read more
sourcefn text<U: Into<Cow<'a, str>>>(&'a self, data: U) -> DocBuilder<'a, Self, A>
fn text<U: Into<Cow<'a, str>>>(&'a self, data: U) -> DocBuilder<'a, Self, A>
Allocate a document containing the given text. Read more
sourcefn concat<I>(&'a self, docs: I) -> DocBuilder<'a, Self, A> where
I: IntoIterator,
I::Item: Pretty<'a, Self, A>,
fn concat<I>(&'a self, docs: I) -> DocBuilder<'a, Self, A> where
I: IntoIterator,
I::Item: Pretty<'a, Self, A>,
Allocate a document concatenating the given documents.
sourcefn intersperse<I, S>(&'a self, docs: I, separator: S) -> DocBuilder<'a, Self, A> where
I: IntoIterator,
I::Item: Pretty<'a, Self, A>,
S: Pretty<'a, Self, A> + Clone,
fn intersperse<I, S>(&'a self, docs: I, separator: S) -> DocBuilder<'a, Self, A> where
I: IntoIterator,
I::Item: Pretty<'a, Self, A>,
S: Pretty<'a, Self, A> + Clone,
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]
. Read more
sourcefn column(
&'a self,
f: impl Fn(usize) -> Self::Doc + 'a
) -> DocBuilder<'a, Self, A>
fn column(
&'a self,
f: impl Fn(usize) -> Self::Doc + 'a
) -> DocBuilder<'a, Self, A>
Allocate a document that acts differently based on the position and page layout Read more
Auto Trait Implementations
impl<'a, A = ()> !RefUnwindSafe for Arena<'a, A>
impl<'a, A = ()> !Send for Arena<'a, A>
impl<'a, A = ()> !Sync for Arena<'a, A>
impl<'a, A> Unpin for Arena<'a, A> where
A: Unpin,
impl<'a, A = ()> !UnwindSafe for Arena<'a, A>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more