+#[get("/pgen/0/{data}")]
+async fn img_pgen0(req: HttpRequest, canvas0: web::Data<Arc<Mutex<Option<Canvas>>>>) -> Result<impl Responder> {
+ let data = req.uri().path().split("/").skip(3).next().unwrap();
+ let mut cursor = Cursor::new(Vec::new());
+ let tdim_x = 32;
+ let tdim_y = 32;
+ {
+ let mut canvas_option = &mut *canvas0.lock().unwrap();
+ let canvas = canvas_option.take();
+ let canvas = rgb_encode_to_canvas(canvas.expect("Canvas doesn't exist!"), percent_decode_str(&data).into_iter().borrow_mut())?;
+ to_imageresult(write_buffer_with_format(&mut cursor, &canvas.img, tdim_x, tdim_y, ColorType::Rgb8, Png))?;
+ canvas_option.insert(canvas);
+ }
+ Ok(HttpResponse::build(StatusCode::OK)
+ .content_type("image/png")
+ .body(cursor.into_inner()))
+}
+