shapely-pretty

Crates.ioshapely-pretty
lib.rsshapely-pretty
version3.1.0
created_at2025-03-11 16:57:35.334991+00
updated_at2025-03-31 19:08:13.447458+00
descriptionPretty-printing for types implementing the Shapely trait
homepagehttps://github.com/bearcove/shapely
repositoryhttps://github.com/bearcove/shapely
max_upload_size
id1588192
size40,543
Amos Wenger (fasterthanlime)

documentation

https://docs.rs/shapely

README

shapely-pretty

experimental free of syn crates.io documentation MIT/Apache-2.0 licensed

A pretty-printing library for types implementing the Shapely trait, providing colorful and well-formatted output.

Features

  • Pretty-print any type implementing the Shapely trait
  • Colorful output with ANSI escape codes
  • Unique colors for different scalar types based on their Shape hash
  • Customizable indentation and formatting
  • Dimmed colors for punctuation
  • Simple abstraction over ANSI escape codes

Example

use shapely::Shapely;
use shapely_pretty::PrettyPrinter;

#[derive(Debug, Shapely)]
struct Person {
    name: String,
    age: u32,
    address: Address,
}

#[derive(Debug, Shapely)]
struct Address {
    street: String,
    city: String,
    country: String,
}

let person = Person {
    name: "Alice".to_string(),
    age: 30,
    address: Address {
        street: "123 Main St".to_string(),
        city: "Wonderland".to_string(),
        country: "Imagination".to_string(),
    },
};

// Print with default settings
PrettyPrinter::new().print(&person);

// Customize the printer
PrettyPrinter::new()
    .with_indent_size(4)
    .with_max_depth(3)
    .print(&person);

Funding

Thanks to Namespace for providing fast GitHub Actions workers:

License

Licensed under either of:

at your option.

Commit count: 1690

cargo fmt