Struct pretty::RcDoc [−][src]
pub struct RcDoc<'a, A = ()>(_);
Implementations
The text t.to_string()
.
The given text must not contain line breaks.
The given text, which must not contain line breaks.
Append the given document after this document.
A single document concatenating all the given documents.
pub fn intersperse<I, S>(docs: I, separator: S) -> Self where
I: IntoIterator,
I::Item: Pretty<'a, RcAllocator, A>,
S: Pretty<'a, RcAllocator, A> + Clone,
A: Clone,
pub fn intersperse<I, S>(docs: I, separator: S) -> Self where
I: IntoIterator,
I::Item: Pretty<'a, RcAllocator, A>,
S: Pretty<'a, RcAllocator, A> + Clone,
A: Clone,
A single document interspersing the given separator S
between the given documents. For
example, if the documents are [A, B, C, ..., Z]
, this yields [A, S, B, S, C, S, ..., S, Z]
.
Compare the intersperse
method from the itertools
crate.
NOTE: The separator type, S
may need to be cloned. Consider using cheaply cloneable ptr
like RefDoc
or RcDoc
Acts as self
when laid out on multiple lines and acts as that
when laid out on a single line.
Mark this document as a group.
Groups are layed out on a single line if possible. Within a group, all basic documents with several possible layouts are assigned the same layout, that is, they are all layed out horizontally and combined into a one single line, or they are each layed out on their own line.
A softline_
acts like nil
if the document fits the page, otherwise like line_
Methods from Deref<Target = Doc<'a, RcDoc<'a, A>, A>>
Writes a rendered document to a std::io::Write
object.
Writes a rendered document to a std::fmt::Write
object.
pub fn render_raw<W>(&self, width: usize, out: &mut W) -> Result<(), W::Error> where
for<'b> W: RenderAnnotated<'b, A>,
W: ?Sized,
pub fn render_raw<W>(&self, width: usize, out: &mut W) -> Result<(), W::Error> where
for<'b> W: RenderAnnotated<'b, A>,
W: ?Sized,
Writes a rendered document to a RenderAnnotated<A>
object.
Returns a value which implements std::fmt::Display
use pretty::{Doc, BoxDoc};
let doc = BoxDoc::<()>::group(
BoxDoc::text("hello").append(Doc::line()).append(Doc::text("world"))
);
assert_eq!(format!("{}", doc.pretty(80)), "hello world");
Trait Implementations
Converts self
into a document
Auto Trait Implementations
impl<'a, A = ()> !RefUnwindSafe for RcDoc<'a, A>
impl<'a, A = ()> !UnwindSafe for RcDoc<'a, A>
Blanket Implementations
Mutably borrows from an owned value. Read more