Skip to content

Commit b5a207e

Browse files
committed
Clippy
1 parent 04d9a1e commit b5a207e

File tree

1 file changed

+48
-38
lines changed

1 file changed

+48
-38
lines changed

mistralrs-web-chat/src/handlers/websocket.rs

Lines changed: 48 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,15 @@ pub struct VisionContext<'a> {
2727
pub image_buffer: &'a mut Vec<image::DynamicImage>,
2828
}
2929

30+
/// Aggregates frequently used parameters so that helper functions stay below
31+
/// Clippy’s `too_many_arguments` threshold.
32+
pub struct HandlerParams<'a> {
33+
pub socket: &'a mut WebSocket,
34+
pub app: &'a Arc<AppState>,
35+
pub streaming: &'a mut bool,
36+
pub active_chat_id: &'a Option<String>,
37+
}
38+
3039
/// Upgrades an HTTP request to a WebSocket connection.
3140
pub async fn ws_handler(
3241
ws: WebSocketUpgrade,
@@ -193,15 +202,18 @@ pub async fn handle_socket(mut socket: WebSocket, app: Arc<AppState>) {
193202
};
194203
match model_loaded {
195204
LoadedModel::Text(model) => {
205+
let mut params = HandlerParams {
206+
socket: &mut socket,
207+
app: &app,
208+
streaming: &mut streaming,
209+
active_chat_id: &active_chat_id,
210+
};
196211
handle_text_model(
197212
&model,
198213
content,
199214
web_search_opts.clone(),
200215
&mut text_msgs,
201-
&mut socket,
202-
&app,
203-
&mut streaming,
204-
&active_chat_id,
216+
&mut params,
205217
)
206218
.await;
207219
}
@@ -210,15 +222,18 @@ pub async fn handle_socket(mut socket: WebSocket, app: Arc<AppState>) {
210222
msgs: &mut vision_msgs,
211223
image_buffer: &mut image_buffer,
212224
};
225+
let mut params = HandlerParams {
226+
socket: &mut socket,
227+
app: &app,
228+
streaming: &mut streaming,
229+
active_chat_id: &active_chat_id,
230+
};
213231
handle_vision_model(
214232
&model,
215233
content,
216234
web_search_opts.clone(),
217235
&mut vision_ctx,
218-
&mut socket,
219-
&app,
220-
&mut streaming,
221-
&active_chat_id,
236+
&mut params,
222237
)
223238
.await;
224239
}
@@ -252,34 +267,26 @@ pub async fn handle_socket(mut socket: WebSocket, app: Arc<AppState>) {
252267

253268
match model_loaded {
254269
LoadedModel::Text(model) => {
255-
handle_text_model(
256-
&model,
257-
&user_msg,
258-
None,
259-
&mut text_msgs,
260-
&mut socket,
261-
&app,
262-
&mut streaming,
263-
&active_chat_id,
264-
)
265-
.await;
270+
let mut params = HandlerParams {
271+
socket: &mut socket,
272+
app: &app,
273+
streaming: &mut streaming,
274+
active_chat_id: &active_chat_id,
275+
};
276+
handle_text_model(&model, &user_msg, None, &mut text_msgs, &mut params).await;
266277
}
267278
LoadedModel::Vision(model) => {
268279
let mut vision_ctx = VisionContext {
269280
msgs: &mut vision_msgs,
270281
image_buffer: &mut image_buffer,
271282
};
272-
handle_vision_model(
273-
&model,
274-
&user_msg,
275-
None,
276-
&mut vision_ctx,
277-
&mut socket,
278-
&app,
279-
&mut streaming,
280-
&active_chat_id,
281-
)
282-
.await;
283+
let mut params = HandlerParams {
284+
socket: &mut socket,
285+
app: &app,
286+
streaming: &mut streaming,
287+
active_chat_id: &active_chat_id,
288+
};
289+
handle_vision_model(&model, &user_msg, None, &mut vision_ctx, &mut params).await;
283290
}
284291
// Speech models should use HTTP endpoint; not handled here
285292
LoadedModel::Speech(_) => {
@@ -389,11 +396,13 @@ async fn handle_text_model(
389396
user_msg: &str,
390397
web_search_opts: Option<WebSearchOptions>,
391398
text_msgs: &mut TextMessages,
392-
socket: &mut WebSocket,
393-
app: &Arc<AppState>,
394-
streaming: &mut bool,
395-
active_chat_id: &Option<String>,
399+
params: &mut HandlerParams<'_>,
396400
) {
401+
// Local aliases keep the original body unchanged.
402+
let socket = &mut *params.socket;
403+
let app = params.app;
404+
let streaming = &mut *params.streaming;
405+
let active_chat_id = params.active_chat_id;
397406
*text_msgs = text_msgs
398407
.clone()
399408
.add_message(TextMessageRole::User, user_msg);
@@ -437,11 +446,12 @@ async fn handle_vision_model(
437446
user_msg: &str,
438447
web_search_opts: Option<WebSearchOptions>,
439448
vision_ctx: &mut VisionContext<'_>,
440-
socket: &mut WebSocket,
441-
app: &Arc<AppState>,
442-
streaming: &mut bool,
443-
active_chat_id: &Option<String>,
449+
params: &mut HandlerParams<'_>,
444450
) {
451+
let socket = &mut *params.socket;
452+
let app = params.app;
453+
let streaming = &mut *params.streaming;
454+
let active_chat_id = params.active_chat_id;
445455
// Track the exact set of messages that will be sent *this* turn.
446456
let mut msgs_for_stream: Option<VisionMessages> = None;
447457
// --- Vision input routing ---

0 commit comments

Comments
 (0)