use core::fmt;
use crate as defmt;
use crate::{export, Format, Formatter, Str};
pub struct Debug2Format<'a, T: fmt::Debug + ?Sized>(pub &'a T);
impl<T: fmt::Debug + ?Sized> fmt::Debug for Debug2Format<'_, T> {
fn fmt(&self, fmt: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
self.0.fmt(fmt)
}
}
impl<T: fmt::Debug + ?Sized> Format for Debug2Format<'_, T> {
default_format!();
fn _format_tag() -> Str {
defmt_macros::internp!("{=__internal_Debug}")
}
fn _format_data(&self) {
export::debug(&self.0);
}
}
pub struct Display2Format<'a, T: fmt::Display + ?Sized>(pub &'a T);
impl<T: fmt::Display + ?Sized> fmt::Display for Display2Format<'_, T> {
fn fmt(&self, fmt: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
self.0.fmt(fmt)
}
}
impl<T: fmt::Display + ?Sized> Format for Display2Format<'_, T> {
default_format!();
fn _format_tag() -> Str {
defmt_macros::internp!("{=__internal_Display}")
}
fn _format_data(&self) {
export::display(&self.0);
}
}