display_container 0.9.0

Utilities to implement Display
Documentation

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.