mongo-orm 0.7.0

A simple orm for mongodb
Documentation
use crate::entity::MongoEntity;
use crate::repo::MongoRepo;
use mongodb::{Client, Database};
use std::error::Error;
use std::sync::Arc;

#[derive(Debug)]
pub struct MongoInstance {
    pub db: Arc<Database>,
    pub client: Client,
}

impl MongoInstance {
    pub async fn setup(uri: &str) -> Result<MongoInstance, Box<dyn Error + Send + Sync>> {
        let client = Client::with_uri_str(uri).await?;

        let db = client.default_database().unwrap();

        Ok(MongoInstance {
            db: Arc::new(db),
            client,
        })
    }

    pub async fn drop_database(&self) {
        let db: &Database = self.db.as_ref();
        db.drop().await.unwrap();
    }

    pub fn repo<T: MongoEntity>(&self, name: &str) -> MongoRepo<T> {
        MongoRepo::new(self.db.clone().collection(name))
    }
}