diff options
author | metamuffin <metamuffin@disroot.org> | 2025-06-02 22:22:11 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-06-02 22:22:11 +0200 |
commit | 2b56668dc89d61248fffeb75a6c8d1136aa7fa39 (patch) | |
tree | c45810bd75e2792ee51e973d336485dbc669be11 /src/webui_ws.rs | |
parent | 63b0aa6a244d017a0e3e41766b403c7e5072bd4b (diff) | |
download | isda-2b56668dc89d61248fffeb75a6c8d1136aa7fa39.tar isda-2b56668dc89d61248fffeb75a6c8d1136aa7fa39.tar.bz2 isda-2b56668dc89d61248fffeb75a6c8d1136aa7fa39.tar.zst |
add task query functionallity to worker_ws
Diffstat (limited to 'src/webui_ws.rs')
-rw-r--r-- | src/webui_ws.rs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/webui_ws.rs b/src/webui_ws.rs index 6b5821e..57393df 100644 --- a/src/webui_ws.rs +++ b/src/webui_ws.rs @@ -1,4 +1,7 @@ -use crate::{State, webui, worker_ws::WorkerID}; +use crate::{ + State, webui, + worker_ws::{TaskState, WorkerID}, +}; use axum::{ extract::{ State as S, WebSocketUpgrade, @@ -37,20 +40,13 @@ pub enum WebuiEvent { }, } -#[derive(Debug, Serialize, Clone, Copy, PartialEq)] -#[serde(rename_all = "snake_case")] -pub enum TaskState { - Queue, - Loading, - Complete, -} - pub(crate) async fn webui_websocket( ws: WebSocketUpgrade, S(state): S<Arc<RwLock<State>>>, ) -> impl IntoResponse { ws.on_upgrade(|ws| webui_websocket_inner(ws, state)) } + async fn webui_websocket_inner(mut ws: WebSocket, state: Arc<RwLock<State>>) { let mut stream = state.read().await.webui_broadcast.subscribe(); while let Ok(ev) = stream.recv().await { @@ -63,6 +59,7 @@ async fn webui_websocket_inner(mut ws: WebSocket, state: Arc<RwLock<State>>) { } } } + impl State { pub fn send_webui_task_removal(&self, key: &str) { if self.webui_broadcast.receiver_count() > 0 { |