pub trait DbAdapter: Send + Sync {
Show 14 methods
// Required methods
fn id(&self) -> &str;
fn create<'a>(&'a self, query: Create) -> AdapterFuture<'a, DbRecord>;
fn find_one<'a>(
&'a self,
query: FindOne,
) -> AdapterFuture<'a, Option<DbRecord>>;
fn find_many<'a>(
&'a self,
query: FindMany,
) -> AdapterFuture<'a, Vec<DbRecord>>;
fn count<'a>(&'a self, query: Count) -> AdapterFuture<'a, u64>;
fn update<'a>(
&'a self,
query: Update,
) -> AdapterFuture<'a, Option<DbRecord>>;
fn update_many<'a>(&'a self, query: UpdateMany) -> AdapterFuture<'a, u64>;
fn delete<'a>(&'a self, query: Delete) -> AdapterFuture<'a, ()>;
fn delete_many<'a>(&'a self, query: DeleteMany) -> AdapterFuture<'a, u64>;
fn transaction<'a>(
&'a self,
callback: TransactionCallback<'a>,
) -> AdapterFuture<'a, ()>;
// Provided methods
fn capabilities(&self) -> AdapterCapabilities { ... }
fn create_schema<'a>(
&'a self,
_schema: &'a DbSchema,
_file: Option<&'a str>,
) -> AdapterFuture<'a, Option<SchemaCreation>> { ... }
fn run_migrations<'a>(
&'a self,
_schema: &'a DbSchema,
) -> AdapterFuture<'a, ()> { ... }
fn run_plugin_migrations<'a>(
&'a self,
_migrations: &'a [PluginMigration],
) -> AdapterFuture<'a, ()> { ... }
}Expand description
Async database adapter contract used by core authentication behavior.
Concrete database integrations should live outside rustauth-core and
implement this trait without forcing their driver or ORM dependencies into
the core crate.
Required Methods§
fn id(&self) -> &str
fn create<'a>(&'a self, query: Create) -> AdapterFuture<'a, DbRecord>
fn find_one<'a>(&'a self, query: FindOne) -> AdapterFuture<'a, Option<DbRecord>>
fn find_many<'a>(&'a self, query: FindMany) -> AdapterFuture<'a, Vec<DbRecord>>
fn count<'a>(&'a self, query: Count) -> AdapterFuture<'a, u64>
fn update<'a>(&'a self, query: Update) -> AdapterFuture<'a, Option<DbRecord>>
fn update_many<'a>(&'a self, query: UpdateMany) -> AdapterFuture<'a, u64>
fn delete<'a>(&'a self, query: Delete) -> AdapterFuture<'a, ()>
fn delete_many<'a>(&'a self, query: DeleteMany) -> AdapterFuture<'a, u64>
fn transaction<'a>( &'a self, callback: TransactionCallback<'a>, ) -> AdapterFuture<'a, ()>
Provided Methods§
fn capabilities(&self) -> AdapterCapabilities
fn create_schema<'a>( &'a self, _schema: &'a DbSchema, _file: Option<&'a str>, ) -> AdapterFuture<'a, Option<SchemaCreation>>
fn run_migrations<'a>(&'a self, _schema: &'a DbSchema) -> AdapterFuture<'a, ()>
fn run_plugin_migrations<'a>( &'a self, _migrations: &'a [PluginMigration], ) -> AdapterFuture<'a, ()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".