Struct pretty::Arena

source ·
pub struct Arena<'a, A = ()> { /* private fields */ }
Expand description

An arena which can be used to allocate Doc values.

Implementations§

source§

impl<'a, A> Arena<'a, A>

source

pub fn new() -> Self

Trait Implementations§

source§

impl<A> Default for Arena<'_, A>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'a, A> DocAllocator<'a, A> for Arena<'a, A>

§

type Doc = RefDoc<'a, A>

source§

fn alloc(&'a self, doc: Doc<'a, Self::Doc, A>) -> Self::Doc

source§

fn alloc_column_fn( &'a self, f: impl Fn(usize) -> Self::Doc + 'a ) -> <Self::Doc as DocPtr<'a, A>>::ColumnFn

source§

fn alloc_width_fn( &'a self, f: impl Fn(isize) -> Self::Doc + 'a ) -> <Self::Doc as DocPtr<'a, A>>::WidthFn

source§

fn alloc_cow(&'a self, doc: BuildDoc<'a, Self::Doc, A>) -> Self::Doc

source§

fn nil(&'a self) -> DocBuilder<'a, Self, A>

Allocate an empty document.
source§

fn fail(&'a self) -> DocBuilder<'a, Self, A>

Fails document rendering immediately. Read more
source§

fn hardline(&'a self) -> DocBuilder<'a, Self, A>

Allocate a single hardline.
source§

fn space(&'a self) -> DocBuilder<'a, Self, A>

source§

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.
source§

fn line_(&'a self) -> DocBuilder<'a, Self, A>

Acts like line but behaves like nil if grouped on a single line Read more
source§

fn softline(&'a self) -> DocBuilder<'a, Self, A>

A softline acts like space if the document fits the page, otherwise like line
source§

fn softline_(&'a self) -> DocBuilder<'a, Self, A>

A softline_ acts like nil if the document fits the page, otherwise like line_
source§

fn as_string<U: Display>(&'a self, data: U) -> DocBuilder<'a, Self, A>

Allocate a document containing the text t.to_string(). Read more
source§

fn text<U: Into<Cow<'a, str>>>(&'a self, data: U) -> DocBuilder<'a, Self, A>

Allocate a document containing the given text. Read more
source§

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.
source§

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
source§

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
source§

fn nesting( &'a self, f: impl Fn(usize) -> Self::Doc + 'a ) -> DocBuilder<'a, Self, A>

Allocate a document that acts differently based on the current nesting level Read more
source§

impl<'a, A> Pretty<'a, Arena<'a, A>, A> for RefDoc<'a, A>where A: 'a,

source§

fn pretty(self, allocator: &'a Arena<'a, A>) -> DocBuilder<'a, Arena<'a, A>, A>

Converts self into a document

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§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.