fix(#7): validate parameter ranges at startup
This commit is contained in:
parent
b6a3bc3219
commit
b3c938cde1
42
src/main.rs
42
src/main.rs
@ -112,9 +112,51 @@ struct Args {
|
|||||||
tint: i32,
|
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>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
|
|
||||||
|
// Validate parameter ranges before processing
|
||||||
|
validate_params(&args)?;
|
||||||
|
|
||||||
println!("Photo Editor v0.1");
|
println!("Photo Editor v0.1");
|
||||||
println!("==================");
|
println!("==================");
|
||||||
println!("Input file: {}", args.input);
|
println!("Input file: {}", args.input);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user