aboutsummaryrefslogtreecommitdiff
path: root/src/webui_ws.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-02 22:22:11 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-02 22:22:11 +0200
commit2b56668dc89d61248fffeb75a6c8d1136aa7fa39 (patch)
treec45810bd75e2792ee51e973d336485dbc669be11 /src/webui_ws.rs
parent63b0aa6a244d017a0e3e41766b403c7e5072bd4b (diff)
downloadisda-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.rs15
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 {