aboutsummaryrefslogtreecommitdiff
path: root/src/fmt.rs
blob: db14a7c00daa5efe7304f7c1872e15b0abcd8f5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use std::fmt::{self, Display};

pub(crate) fn display(fmt: impl Fn(&mut fmt::Formatter) -> fmt::Result) -> impl Display {
    DisplayInvoke(fmt)
}

struct DisplayInvoke<T>(T);

impl<T> Display for DisplayInvoke<T>
where
    T: Fn(&mut fmt::Formatter) -> fmt::Result,
{
    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
        (self.0)(formatter)
    }
}