From: MegaBrutal Date: Mon, 18 Jul 2022 00:20:00 +0000 (+0200) Subject: Return dimensions of existing canvas X-Git-Url: http://git.megabrutal.com/?p=litoprism.git;a=commitdiff_plain;h=db7be2ee3c0b60413dfb9bd9d657cf491a47d606 Return dimensions of existing canvas --- diff --git a/src/main.rs b/src/main.rs index 6e06fab..7353da5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,7 +44,7 @@ impl ResponseError for ImageError { #[derive(Debug)] enum CanvasError { NotExists, - DimensionMismatch, + DimensionMismatch((u32, u32)), ImageError(ImageError) } @@ -58,7 +58,7 @@ impl ResponseError for CanvasError { fn status_code(&self) -> StatusCode { match &self { CanvasError::NotExists => StatusCode::NOT_FOUND, - CanvasError::DimensionMismatch => StatusCode::BAD_REQUEST, + CanvasError::DimensionMismatch(_) => StatusCode::BAD_REQUEST, CanvasError::ImageError(e) => e.status_code() } } @@ -66,7 +66,8 @@ impl ResponseError for CanvasError { fn error_response(&self) -> HttpResponse { match &self { CanvasError::NotExists => HttpResponse::NotFound().body("Canvas does not exist."), - CanvasError::DimensionMismatch => HttpResponse::BadRequest().body("Supplied dimensions don't much the dimensions of existing canvas."), + CanvasError::DimensionMismatch(dim) => + HttpResponse::BadRequest().body(format!("Supplied dimensions don't match the dimensions of existing canvas {:?}.", dim)), CanvasError::ImageError(e) => e.error_response() } } @@ -189,8 +190,7 @@ fn apply_to_canvas<'a, F>(f: F, canvas_option: &'a mut Option, dimension Ok(canvas) } else { - _ = canvas_option.insert(canvas); - Err(CanvasError::DimensionMismatch) + Err(CanvasError::DimensionMismatch(canvas_option.insert(canvas).img.dimensions())) } }, None =>