create DbCollection and GetCollection traits

This commit is contained in:
Akulij 2025-05-26 20:15:27 +05:00
parent 4c149b6922
commit 9c15b0a375

View File

@ -12,7 +12,7 @@ use futures::stream::TryStreamExt;
use mongodb::options::IndexOptions; use mongodb::options::IndexOptions;
use mongodb::{bson::doc, options::ClientOptions, Client}; use mongodb::{bson::doc, options::ClientOptions, Client};
use mongodb::{Database, IndexModel}; use mongodb::{Collection, Database, IndexModel};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(EnumStringify)] #[derive(EnumStringify)]
@ -193,6 +193,14 @@ impl DB {
} }
} }
pub trait DbCollection {
const COLLECTION: &str;
}
pub trait GetCollection {
async fn get_collection<C: DbCollection + Send + Sync>(&mut self) -> Collection<C>;
}
#[async_trait] #[async_trait]
impl CallDB for DB { impl CallDB for DB {
async fn get_database(&mut self) -> Database { async fn get_database(&mut self) -> Database {