From b2df5bf4f3701b75aba6d9addc975da1c4e5bdaf Mon Sep 17 00:00:00 2001 From: Akulij Date: Mon, 2 Jun 2025 16:44:48 +0500 Subject: [PATCH] db: some functions do not require mut db --- src/db/mod.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/db/mod.rs b/src/db/mod.rs index 1e5882f..db6b0c2 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -212,6 +212,10 @@ impl CallDB for DB { async fn get_database(&mut self) -> Database { self.client.database(&self.name) } + + async fn get_database_immut(&self) -> Database { + self.client.database(&self.name) + } } impl GetCollection for T { @@ -233,9 +237,10 @@ pub type DbResult = Result; pub trait CallDB { //type C; async fn get_database(&mut self) -> Database; + async fn get_database_immut(&self) -> Database; //async fn get_pool(&mut self) -> PooledConnection<'_, AsyncDieselConnectionManager>; - async fn get_users(&mut self) -> DbResult> { - let db = self.get_database().await; + async fn get_users(&self) -> DbResult> { + let db = self.get_database_immut().await; let users = db.collection::("users"); Ok(users.find(doc! {}).await?.try_collect().await?) @@ -350,8 +355,8 @@ pub trait CallDB { Ok(()) } - async fn get_literal(&mut self, literal: &str) -> DbResult> { - let db = self.get_database().await; + async fn get_literal(&self, literal: &str) -> DbResult> { + let db = self.get_database_immut().await; let messages = db.collection::("literals"); let literal = messages.find_one(doc! { "token": literal }).await?; @@ -359,7 +364,7 @@ pub trait CallDB { Ok(literal) } - async fn get_literal_value(&mut self, literal: &str) -> DbResult> { + async fn get_literal_value(&self, literal: &str) -> DbResult> { let literal = self.get_literal(literal).await?; Ok(literal.map(|l| l.value))