1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
//! 全ハンドラで共有する状態
use crate::conf::Conf;
use crate::session::Store;
use sqlx::SqlitePool;
use std::sync::Arc;
/// 共有状態。中身はどれも参照カウントを持つので Clone は安価である
#[derive(Clone)]
pub struct AppState {
/// SQLite の接続プール
pub database: SqlitePool,
/// 中継に使う HTTP クライアント
pub client: reqwest::Client,
/// セッションの置き場
pub session: Store,
/// 起動時に読んだ設定
pub conf: Arc<Conf>,
}