use crate::{Display, Formatter, Result};
#[doc(hidden)]
pub struct StdFmt<'a> {
#[doc(hidden)]
pub f: &'a (dyn Fn(&mut core::fmt::Formatter<'_>) -> Result + 'a),
}
impl core::fmt::Display for StdFmt<'_> {
#[inline]
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result {
(self.f)(f)
}
}
impl core::fmt::Debug for StdFmt<'_> {
#[inline]
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result {
(self.f)(f)
}
}
#[doc(hidden)]
#[allow(missing_debug_implementations)]
pub struct StdFmtOther<'a>(
#[doc(hidden)]
pub StdFmt<'a>,
);
#[doc(hidden)]
#[allow(missing_debug_implementations)]
pub struct StdFmtDebug<'a>(
#[doc(hidden)]
pub StdFmt<'a>,
);
#[allow(missing_debug_implementations)]
pub struct Arguments<'a> {
#[doc(hidden)]
pub f: &'a (dyn Fn(&mut Formatter<'_>) -> Result + 'a),
}
impl Display for StdFmtOther<'_> {
#[inline]
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
let arg = &self.0;
std_write!(f, Other, arg)
}
}
impl Display for StdFmtDebug<'_> {
#[inline]
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
let arg = &self.0;
std_write!(f, Debug, arg)
}
}
impl Display for Arguments<'_> {
#[inline]
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
(self.f)(f)
}
}