Skip to content
This repository was archived by the owner on Apr 28, 2026. It is now read-only.

Commit 3b6898e

Browse files
Fix Rust lint blockers for release
Resolve clippy warnings in the ASR, audio capture, CLI, and URL helper code so the 0.0.10 release passes the Rust CI gate.
1 parent 6375e84 commit 3b6898e

4 files changed

Lines changed: 39 additions & 29 deletions

File tree

src-tauri/src/asr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ fn speech_live_transcription_append(
472472
#[cfg(target_os = "macos")]
473473
{
474474
let encode = |samples: &[f32]| {
475-
let mut bytes = Vec::with_capacity(samples.len() * std::mem::size_of::<f32>());
475+
let mut bytes = Vec::with_capacity(std::mem::size_of_val(samples));
476476
for sample in samples {
477477
bytes.extend_from_slice(&sample.to_le_bytes());
478478
}

src-tauri/src/audio_capture.rs

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,14 @@ fn run_capture_loop<F>(
159159
Ok(WorkerMessage::Audio(chunk)) => {
160160
let delivery = process_audio_chunk(
161161
chunk,
162-
&mut joiner,
163-
&mut mic_resampler,
164-
&mut speaker_resampler,
165-
&mut mic_frames,
166-
&mut speaker_frames,
167-
&mut echo_canceller,
162+
&mut AudioChunkProcessor {
163+
joiner: &mut joiner,
164+
mic_resampler: &mut mic_resampler,
165+
speaker_resampler: &mut speaker_resampler,
166+
mic_frames: &mut mic_frames,
167+
speaker_frames: &mut speaker_frames,
168+
echo_canceller: &mut echo_canceller,
169+
},
168170
&mut on_chunk,
169171
);
170172

@@ -223,42 +225,50 @@ fn run_capture_loop<F>(
223225
}
224226
}
225227

228+
struct AudioChunkProcessor<'a> {
229+
joiner: &'a mut ChunkJoiner,
230+
mic_resampler: &'a mut LinearResampler,
231+
speaker_resampler: &'a mut LinearResampler,
232+
mic_frames: &'a mut ChunkAccumulator,
233+
speaker_frames: &'a mut ChunkAccumulator,
234+
echo_canceller: &'a mut EchoCanceller,
235+
}
236+
226237
fn process_audio_chunk<F>(
227238
chunk: AudioChunk,
228-
joiner: &mut ChunkJoiner,
229-
mic_resampler: &mut LinearResampler,
230-
speaker_resampler: &mut LinearResampler,
231-
mic_frames: &mut ChunkAccumulator,
232-
speaker_frames: &mut ChunkAccumulator,
233-
echo_canceller: &mut EchoCanceller,
239+
processor: &mut AudioChunkProcessor<'_>,
234240
on_chunk: &mut F,
235241
) -> Result<(), String>
236242
where
237243
F: FnMut(Vec<f32>, Vec<f32>, Vec<f32>) -> Result<(), String>,
238244
{
239245
let resampled = match chunk.source {
240-
AudioSource::Mic => mic_resampler.process(&chunk.samples, chunk.sample_rate),
241-
AudioSource::Speaker => speaker_resampler.process(&chunk.samples, chunk.sample_rate),
246+
AudioSource::Mic => processor
247+
.mic_resampler
248+
.process(&chunk.samples, chunk.sample_rate),
249+
AudioSource::Speaker => processor
250+
.speaker_resampler
251+
.process(&chunk.samples, chunk.sample_rate),
242252
};
243253

244254
if resampled.is_empty() {
245255
return Ok(());
246256
}
247257

248258
let ready_frames = match chunk.source {
249-
AudioSource::Mic => mic_frames.push(resampled),
250-
AudioSource::Speaker => speaker_frames.push(resampled),
259+
AudioSource::Mic => processor.mic_frames.push(resampled),
260+
AudioSource::Speaker => processor.speaker_frames.push(resampled),
251261
};
252262

253263
for ready in ready_frames {
254264
match chunk.source {
255-
AudioSource::Mic => joiner.push_mic(ready),
256-
AudioSource::Speaker => joiner.push_speaker(ready),
265+
AudioSource::Mic => processor.joiner.push_mic(ready),
266+
AudioSource::Speaker => processor.joiner.push_speaker(ready),
257267
}
258268
}
259269

260-
while let Some((mic, speaker)) = joiner.pop_pair() {
261-
let delivery = echo_canceller.process_frame(&mic, &speaker)?;
270+
while let Some((mic, speaker)) = processor.joiner.pop_pair() {
271+
let delivery = processor.echo_canceller.process_frame(&mic, &speaker)?;
262272
deliver_output_chunks(delivery, on_chunk)?;
263273
}
264274

src-tauri/src/cli.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ fn run_transcribe(args: &[String]) -> Result<(), String> {
311311
let model_id = model_id.unwrap_or_else(|| {
312312
recommend_model(
313313
&detect_device_profile(),
314-
&[language.clone()],
314+
std::slice::from_ref(&language),
315315
TranscriptionMode::Batch,
316316
)
317317
.model_id

src-tauri/src/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1710,7 +1710,7 @@ fn show_settings_window<R: tauri::Runtime>(
17101710
let route = settings_window_route(section);
17111711

17121712
if let Some(window) = app.get_webview_window(SETTINGS_WINDOW_LABEL) {
1713-
window.eval(&format!("window.location.hash = '#{route}'"))?;
1713+
window.eval(format!("window.location.hash = '#{route}'"))?;
17141714
let _ = window.unminimize();
17151715
window.show()?;
17161716
window.set_focus()?;
@@ -3153,29 +3153,29 @@ fn yaml_optional_string(value: Option<&str>) -> String {
31533153
fn open_external_url(url: &str) -> Result<(), String> {
31543154
#[cfg(target_os = "macos")]
31553155
{
3156-
return Command::new("open")
3156+
Command::new("open")
31573157
.arg(url)
31583158
.spawn()
31593159
.map(|_| ())
3160-
.map_err(|error| format!("Failed to open {url}: {error}"));
3160+
.map_err(|error| format!("Failed to open {url}: {error}"))
31613161
}
31623162

31633163
#[cfg(target_os = "windows")]
31643164
{
3165-
return Command::new("cmd")
3165+
Command::new("cmd")
31663166
.args(["/C", "start", "", url])
31673167
.spawn()
31683168
.map(|_| ())
3169-
.map_err(|error| format!("Failed to open {url}: {error}"));
3169+
.map_err(|error| format!("Failed to open {url}: {error}"))
31703170
}
31713171

31723172
#[cfg(all(unix, not(target_os = "macos")))]
31733173
{
3174-
return Command::new("xdg-open")
3174+
Command::new("xdg-open")
31753175
.arg(url)
31763176
.spawn()
31773177
.map(|_| ())
3178-
.map_err(|error| format!("Failed to open {url}: {error}"));
3178+
.map_err(|error| format!("Failed to open {url}: {error}"))
31793179
}
31803180

31813181
#[cfg(not(any(target_os = "macos", target_os = "windows", unix)))]

0 commit comments

Comments
 (0)