pub trait DataSource:
Send
+ Sync
+ 'static {
type Conn: Send;
// Required methods
fn acquire(
&self,
intent: AccessIntent,
) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DataError>> + Send + '_>>;
fn name(&self) -> &'static str;
}Expand description
One logical database: a primary plus optional read replicas.
Implementations own pooling (SQLx PgPools etc.) and replica selection.
acquire(Write) MUST return a primary connection; acquire(Read) MAY
return a replica.
Required Associated Types§
Required Methods§
fn acquire( &self, intent: AccessIntent, ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DataError>> + Send + '_>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".