llldap/src/db/interface.rs

41 lines
1.2 KiB
Rust
Raw Normal View History

use crate::db::error::{BoxedError, UserCreationError};
2026-09-01 19:06:33 +02:00
use crate::db::{Database, User, UserRef};
impl<D: DatabaseInterface> DatabaseInterface for Database<D> {
2026-09-01 23:27:02 +02:00
async fn get_user(&self, user: &UserRef) -> Result<Option<User>, BoxedError> {
2026-09-01 19:06:33 +02:00
self.inner.read().await.get_user(user).await
}
2026-09-01 23:27:02 +02:00
async fn create_user(
&mut self,
user: User,
) -> Result<Result<(), UserCreationError>, BoxedError> {
2026-09-01 19:06:33 +02:00
self.inner.write().await.create_user(user).await
}
async fn try_create_user(
&mut self,
new_user: User,
current_user: &User,
) -> Result<Result<(), UserCreationError>, BoxedError> {
self.inner
.write()
.await
.try_create_user(new_user, current_user)
.await
}
2026-09-01 19:06:33 +02:00
}
2026-09-03 21:50:32 +02:00
pub trait DatabaseInterface: Clone + Send + Sync + 'static {
2026-09-01 23:27:02 +02:00
async fn get_user(&self, user: &UserRef) -> Result<Option<User>, BoxedError>;
async fn create_user(
&mut self,
user: User,
) -> Result<Result<(), UserCreationError>, BoxedError>;
#[expect(unused)]
async fn try_create_user(
&mut self,
new_user: User,
current_user: &User,
) -> Result<Result<(), UserCreationError>, BoxedError>;
2026-09-01 19:06:33 +02:00
}