You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
781 B
27 lines
781 B
use sqlx::SqlitePool;
|
|
use oauth2::basic::BasicClient;
|
|
use axum::extract::FromRef;
|
|
|
|
// App state. Pretty basic stuff. Gets passed around by the server to the handlers and whatnot
|
|
// Use in a handler with the state enum:
|
|
// async fn handler(State(my_app_state): State<AppState>)
|
|
#[derive(Clone)]
|
|
pub struct AppState {
|
|
pub db: SqlitePool,
|
|
pub oauth_client: BasicClient,
|
|
}
|
|
|
|
// Axum extractors for app state. These allow the handler to just use
|
|
// pieces of the App state
|
|
// async fn handler(State(my_db): State<SqlitePool>)
|
|
impl FromRef<AppState> for SqlitePool {
|
|
fn from_ref(input: &AppState) -> Self {
|
|
input.db.clone()
|
|
}
|
|
}
|
|
|
|
impl FromRef<AppState> for BasicClient {
|
|
fn from_ref(input: &AppState) -> Self {
|
|
input.oauth_client.clone()
|
|
}
|
|
} |