1use core::fmt::{self, Display}; 2 3pub(crate) fn display(fmt: impl Fn(&mut fmt::Formatter) -> fmt::Result) -> impl Display { 4 DisplayInvoke(fmt) 5} 6 7struct DisplayInvoke<T>(T); 8 9impl<T> Display for DisplayInvoke<T> 10where 11 T: Fn(&mut fmt::Formatter) -> fmt::Result, 12{ 13 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { 14 (self.0)(formatter) 15 } 16} 17