use async_trait::async_trait; use sqlx::PgPool; use crate::{config::DatabaseOptions, server::state::database}; pub struct Services { database: PgPool, // oauth: OauthClient, } impl Services { pub async fn new(database: &DatabaseOptions) -> anyhow::Result { let database = database::connect(database).await?; Ok(Self { database }) } } #[async_trait] pub trait SellershutDriver: Send + Sync + 'static { async fn hello(&self); } #[async_trait] impl SellershutDriver for Services { async fn hello(&self) { todo!() } }