pub trait DatabaseConnectionPlugin:
Clone
+ Copy
+ Default
+ Send
+ Sync
+ 'static {
type InstanceConfig: Clone + Send + Sync + 'static;
type AutoCreation: DatabaseAutoCreation<InstanceConfig = Self::InstanceConfig>;
type Connection: Clone + Send + Sync + 'static;
type ConnectionCache: Send + Sync + 'static;
// Required methods
fn plugin_type() -> PluginType;
fn connection_db<I>(
instance_name: I,
schema: Option<DatabaseSchema>,
) -> impl Future<Output = Result<Self::Connection, String>> + Send
where I: AsRef<str> + Send;
fn get_connection<I>(
instance_name: I,
schema: Option<DatabaseSchema>,
) -> impl Future<Output = Result<Self::Connection, String>> + Send
where I: AsRef<str> + Send;
fn perform_auto_creation(
instance: &Self::InstanceConfig,
schema: Option<DatabaseSchema>,
) -> impl Future<Output = Result<AutoCreationResult, AutoCreationError>> + Send;
}Required Associated Types§
type InstanceConfig: Clone + Send + Sync + 'static
type AutoCreation: DatabaseAutoCreation<InstanceConfig = Self::InstanceConfig>
type Connection: Clone + Send + Sync + 'static
type ConnectionCache: Send + Sync + 'static
Required Methods§
fn plugin_type() -> PluginType
fn connection_db<I>( instance_name: I, schema: Option<DatabaseSchema>, ) -> impl Future<Output = Result<Self::Connection, String>> + Send
fn get_connection<I>( instance_name: I, schema: Option<DatabaseSchema>, ) -> impl Future<Output = Result<Self::Connection, String>> + Send
fn perform_auto_creation( instance: &Self::InstanceConfig, schema: Option<DatabaseSchema>, ) -> impl Future<Output = Result<AutoCreationResult, AutoCreationError>> + Send
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.