use crate::llm::OllamaClient;
use crate::protocol::StartupParams;
use crate::state::app_state::AppState;
use crate::state::ClientId;
use std::sync::Arc;
use tokio::sync::mpsc;
#[derive(Clone)]
pub struct ConnectContext {
pub remote_addr: String,
pub llm_client: OllamaClient,
pub state: Arc<AppState>,
pub status_tx: mpsc::UnboundedSender<String>,
pub client_id: ClientId,
pub startup_params: Option<StartupParams>,
}
impl ConnectContext {
pub fn new(
remote_addr: String,
llm_client: OllamaClient,
state: Arc<AppState>,
status_tx: mpsc::UnboundedSender<String>,
client_id: ClientId,
) -> Self {
Self {
remote_addr,
llm_client,
state,
status_tx,
client_id,
startup_params: None,
}
}
pub fn with_params(
remote_addr: String,
llm_client: OllamaClient,
state: Arc<AppState>,
status_tx: mpsc::UnboundedSender<String>,
client_id: ClientId,
startup_params: StartupParams,
) -> Self {
Self {
remote_addr,
llm_client,
state,
status_tx,
client_id,
startup_params: Some(startup_params),
}
}
}