use crate::db::error::{BoxedError, UserCreationError}; use crate::db::{Database, User, UserRef}; impl DatabaseInterface for Database { async fn get_user(&self, user: &UserRef) -> Result, BoxedError> { self.inner.read().await.get_user(user).await } async fn create_user( &mut self, user: User, ) -> Result, BoxedError> { self.inner.write().await.create_user(user).await } async fn try_create_user( &mut self, new_user: User, current_user: &User, ) -> Result, BoxedError> { self.inner .write() .await .try_create_user(new_user, current_user) .await } } pub trait DatabaseInterface: Clone + Send + Sync + 'static { async fn get_user(&self, user: &UserRef) -> Result, BoxedError>; async fn create_user( &mut self, user: User, ) -> Result, BoxedError>; #[expect(unused)] async fn try_create_user( &mut self, new_user: User, current_user: &User, ) -> Result, BoxedError>; }