From e43030d0519dd02e20d9264982808efdb76388c2 Mon Sep 17 00:00:00 2001 From: Loic Hausammann Date: Tue, 16 Sep 2025 17:54:44 +0200 Subject: [PATCH] websocket: add a wrapper around is_terminated (#3443) Co-authored-by: Loic Co-authored-by: loikki <851651-loikki@users.noreply.gitlab.com> --- axum/src/extract/ws.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/axum/src/extract/ws.rs b/axum/src/extract/ws.rs index 9b255799..9f9e6eb0 100644 --- a/axum/src/extract/ws.rs +++ b/axum/src/extract/ws.rs @@ -94,7 +94,7 @@ use self::rejection::*; use super::FromRequestParts; use crate::{body::Bytes, response::Response, Error}; use axum_core::body::Body; -use futures_core::Stream; +use futures_core::{FusedStream, Stream}; use futures_sink::Sink; use futures_util::{sink::SinkExt, stream::StreamExt}; use http::{ @@ -530,6 +530,13 @@ impl WebSocket { } } +impl FusedStream for WebSocket { + /// Returns true if the websocket has been terminated. + fn is_terminated(&self) -> bool { + self.inner.is_terminated() + } +} + impl Stream for WebSocket { type Item = Result;