fix(#7): validate parameter ranges at startup

This commit is contained in:
opencode 2026-07-05 14:49:43 +00:00
parent b6a3bc3219
commit b3c938cde1

View File

@ -112,9 +112,51 @@ struct Args {
tint: i32,
}
/// Validate that all adjustment parameters are within their documented ranges.
fn validate_params(args: &Args) -> Result<(), Box<dyn std::error::Error>> {
if args.exposure < -2.0 || args.exposure > 2.0 {
return Err("--exposure must be between -2.0 and 2.0".into());
}
let range = -100i32..=100i32;
if !range.contains(&args.contrast) {
return Err("--contrast must be between -100 and 100".into());
}
if !range.contains(&args.highlights) {
return Err("--highlights must be between -100 and 100".into());
}
if !range.contains(&args.shadows) {
return Err("--shadows must be between -100 and 100".into());
}
if !range.contains(&args.whites) {
return Err("--whites must be between -100 and 100".into());
}
if !range.contains(&args.blacks) {
return Err("--blacks must be between -100 and 100".into());
}
if !range.contains(&args.clarity) {
return Err("--clarity must be between -100 and 100".into());
}
if !range.contains(&args.vibrance) {
return Err("--vibrance must be between -100 and 100".into());
}
if !range.contains(&args.saturation) {
return Err("--saturation must be between -100 and 100".into());
}
if !range.contains(&args.temperature) {
return Err("--temperature must be between -100 and 100".into());
}
if !range.contains(&args.tint) {
return Err("--tint must be between -100 and 100".into());
}
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
// Validate parameter ranges before processing
validate_params(&args)?;
println!("Photo Editor v0.1");
println!("==================");
println!("Input file: {}", args.input);