prettyless

Crates.ioprettyless
lib.rsprettyless
version0.3.0
created_at2025-07-07 16:00:50.241132+00
updated_at2025-07-17 13:50:54.124225+00
descriptionWadler-style pretty-printing combinators in Rust with more features.
homepage
repositoryhttps://github.com/typstyle-rs/prettyless
max_upload_size
id1741490
size137,107
(QuadnucYard)

documentation

https://docs.rs/prettyless/

README

prettyless

build Docs

Pretty printing combinators for Rust

This is an unofficial forked version of pretty.rs by @Marwes, branched from v0.12.4. We extend it with more features used in typstyle, a code formatter for Typst. The correctness of modifications are partly guaranteed by the testsuite of typstyle.

Synopsis

This crate provides functionality for defining pretty printers. It is particularly useful for printing structured recursive data like trees.

The implementation was originally based on Larsen's SML translation (https://github.com/kfl/wpp) of Wadler's Haskell pretty printer (https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf). It has since been modified in various ways to better fit Rust's programming model. In particular, it uses iteration rather than recursion and provides streaming output.

Documentation

See the generated API documentation here.

Requirements

  1. Rust
  2. Cargo

You can install both with the following:

curl -s https://static.rust-lang.org/rustup.sh | sudo sh

See Installation for further details.

Usage

cargo build                                          ## build library and binary
cargo run --example trees                            ## run the example (pretty trees)
cargo bench                                          ## run benchmarks
cargo test                                           ## run tests
Commit count: 0

cargo fmt