Skip to main content

DatabaseConnectionPlugin

Trait DatabaseConnectionPlugin 

Source
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§

Source

type InstanceConfig: Clone + Send + Sync + 'static

Source

type AutoCreation: DatabaseAutoCreation<InstanceConfig = Self::InstanceConfig>

Source

type Connection: Clone + Send + Sync + 'static

Source

type ConnectionCache: Send + Sync + 'static

Required Methods§

Source

fn plugin_type() -> PluginType

Source

fn connection_db<I>( instance_name: I, schema: Option<DatabaseSchema>, ) -> impl Future<Output = Result<Self::Connection, String>> + Send
where I: AsRef<str> + Send,

Source

fn get_connection<I>( instance_name: I, schema: Option<DatabaseSchema>, ) -> impl Future<Output = Result<Self::Connection, String>> + Send
where I: AsRef<str> + Send,

Source

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.

Implementors§