pub trait DbConnection<T, P>: Send {
// Required methods
fn as_any(&self) -> &dyn Any;
fn as_any_mut(&mut self) -> &mut dyn Any;
// Provided methods
fn as_sync(&self) -> Option<&dyn SyncDbConnection<T, P>> { ... }
fn as_async(&self) -> Option<&dyn AsyncDbConnection<T, P>> { ... }
}