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