fix(engine): reject non-string stem output formats

Address review r3017244428: only an absent format defaults to WAV; a present non-string value returns a parameter error before creating the output directory.
This commit is contained in:
Mex authored and GitHub committed 2026-11-05 00:09:33 +01:00
1 parent b8e1e69134
commit bf2a6b52de
1 file changed
+4 -1
+4 -1
View File
@@ -92,7 +92,10 @@ pub fn specs() -> Vec<CommandSpec> {
let dir = str_param(p, "dir").ok_or_else(|| bad("file.bounce_stems", "`dir` required"))?.to_string();
let r = range_param(e, "file.bounce_stems", p)?;
let r = if r.is_empty() { soundcraft_time::Range::new(0, e.session().content_end().max(1)) } else { r };
let format_name = str_param(p, "format").unwrap_or("wav");
let format_name = match p.get("format") {
None => "wav",
Some(value) => value.as_str().ok_or_else(|| bad("file.bounce_stems", "`format` must be a string"))?,
};
let format = soundcraft_audio_io::FileFormat::from_write_extension(format_name).ok_or_else(|| {
let supported = soundcraft_audio_io::FileFormat::writable_extensions().join(", ");
bad("file.bounce_stems", format!("cannot write `{format_name}` files (supported: {supported})"))