toi_server 0.1.1

A personal assistant server
Documentation
use crate::{client::ModelClient, models::config::ServerConfig, utils};
use axum::extract::FromRef;

#[derive(Clone)]
pub struct ToiState {
    pub server_config: ServerConfig,
    pub api_client: reqwest::Client,
    pub model_client: ModelClient,
    pub pool: utils::Pool,
}

impl FromRef<ToiState> for reqwest::Client {
    fn from_ref(state: &ToiState) -> reqwest::Client {
        state.api_client.clone()
    }
}

impl FromRef<ToiState> for ModelClient {
    fn from_ref(state: &ToiState) -> ModelClient {
        state.model_client.clone()
    }
}

impl FromRef<ToiState> for utils::Pool {
    fn from_ref(state: &ToiState) -> utils::Pool {
        state.pool.clone()
    }
}

impl FromRef<ToiState> for ServerConfig {
    fn from_ref(state: &ToiState) -> ServerConfig {
        state.server_config.clone()
    }
}