2026-09-01 23:27:02 +02:00
|
|
|
use crate::db::error::{BoxedError, UserAlreadyExists};
|
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<(), UserAlreadyExists>, BoxedError> {
|
2026-09-01 19:06:33 +02:00
|
|
|
self.inner.write().await.create_user(user).await
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub trait DatabaseInterface {
|
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<(), UserAlreadyExists>, BoxedError>;
|
2026-09-01 19:06:33 +02:00
|
|
|
}
|