pub trait DebugWithDb<'db> {
type Db: ?Sized;
// Required method
fn fmt(&self, f: &mut Formatter<'_>, db: &'db Self::Db) -> Result;
// Provided methods
fn debug<'me>(&'me self, db: &'db Self::Db) -> DebugWith<'me, 'db, Self::Db>
where Self: Sized + 'me { ... }
fn into_debug<'me>(self, db: &'db Self::Db) -> DebugWith<'me, 'db, Self::Db>
where Self: Sized + 'me { ... }
}