1 unstable release

0.9.0 Jun 5, 2023

#21 in #produce

Download history 1566/week @ 2024-09-05 1518/week @ 2024-09-12 1255/week @ 2024-09-19 20773/week @ 2024-09-26 3104/week @ 2024-10-03 2126/week @ 2024-10-10 2425/week @ 2024-10-17 2494/week @ 2024-10-24 3084/week @ 2024-10-31 1838/week @ 2024-11-07 1829/week @ 2024-11-14 2092/week @ 2024-11-21 5000/week @ 2024-11-28 4345/week @ 2024-12-05 3675/week @ 2024-12-12 1950/week @ 2024-12-19

15,263 downloads per month
Used in 7 crates (via starlark)

MIT/Apache

12KB
215 lines

Provides utilities to implement Display, which also provides an "alternate" display.

As an example of using these combinators:

use std::fmt;
use display_container::*;

struct MyItems(Vec<(String, i32)>);

impl fmt::Display for MyItems {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt_container(f, "{", "}",
            iter_display_chain(
                &["magic"],
                self.0.iter().map(|(k, v)| display_pair(k, "=", v))
            )
        )
    }
}

Would produce results such as:

{magic, hello=1, world=2}

For "normal" display, produces output like (with prefix="prefix[", suffix="]"):

prefix[] prefix[1] prefix[1, 2]

For "alternate" display, produces output like:

prefix[] prefix[ 1 ]

prefix[
  1,
  2
]

This doesn't propagate the flags on the Formatter other than alternate.

Dependencies

~65KB