-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide fmt::Write API #123
Comments
I'm currently using the following workaround. Ended up being surprisingly neat. struct FormatTimeDisplay<T>(T);
impl<T: FormatTime> fmt::Display for FormatTimeDisplay<T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
if self.0.format_time(&mut Writer::new(f)).is_err() {
f.write_str("<unknown time>")
} else {
Ok(())
}
}
} |
@stefnotch yeah I encountered this the other day too, and used the same approach you did with a wrapper type's |
That could be neat. While working with styling crates, I've heard of two wildly different wishes. Depending on those, one would design a different API
|
The crate tracing-subscriber might switch to using owo-colors. ( tokio-rs/tracing#2759 )
I tried implementing it, but stumbled upon a tricky case. Essentially tracing-subscriber is outputting values to a
core::fmt::Write
, and it wants to callfmt_prefix
before that andfmt_suffix
after that.[1]However, the
fmt_prefix
andfmt_suffix
methods assume that one has astd::fmt::Formatter
. Which isn't the case here. The code is roughlyWould it be reasonable to change the
fmt_prefix
/fmt_suffix
methods to accept anything that implementsfmt::Write
? Or is there another, potentially better solution?[1]
https://github.com/tokio-rs/tracing/blob/908cc432a5994f6e17c8f36e13c217dc40085704/tracing-subscriber/src/fmt/format/mod.rs#L859-L868
The text was updated successfully, but these errors were encountered: