From: MegaBrutal <code+git@megabrutal.com>
Date: Sat, 25 Jun 2022 22:15:00 +0000 (+0200)
Subject: Make_png now accepts processed data
X-Git-Url: http://git.megabrutal.com/?a=commitdiff_plain;h=4cfc79b87af18756416ce40e52a3f09cfb85a119;p=litoprism.git

Make_png now accepts processed data
---

diff --git a/src/main.rs b/src/main.rs
index faa1ad8..7b0f6b5 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -48,7 +48,6 @@ impl<T: AsPrimitive<u8> + Zero> Iterator for ToRgbIter<'_, T> {
         if let Some(r) = self.iter.next() {
             let g = self.iter.next().unwrap_or(T::zero());
             let b = self.iter.next().unwrap_or(T::zero());
-            println!("{} {} {}", r.as_(), g.as_(), b.as_());
             Some(Rgb([r.as_(), g.as_(), b.as_()]))
         }
         else {
@@ -70,11 +69,11 @@ async fn greet(name: web::Path<String>, req: HttpRequest) -> impl Responder {
     format!("Hello {name}!")
 }
 
-fn make_png(dim_x: u32, dim_y: u32, scale: u32, data: &str) -> Result<Cursor<Vec<u8>>, ImageError> {
+fn make_png(dim_x: u32, dim_y: u32, scale: u32, data: &mut dyn Iterator<Item = u8>) -> Result<Cursor<Vec<u8>>, ImageError> {
     let mut img: RgbImage = ImageBuffer::new(dim_x, dim_y);
     let mut pixels = img.pixels_mut();
 
-    for sp in ToRgbIter::new(percent_decode_str(&data).into_iter().borrow_mut()) {
+    for sp in ToRgbIter::new(data) {
         let mut dp = pixels.next().unwrap();
         println!("{:?}", sp);
         dp.0 = sp.0;
@@ -91,7 +90,7 @@ fn make_png(dim_x: u32, dim_y: u32, scale: u32, data: &str) -> Result<Cursor<Vec
 #[get("/gen/0/{data}")]
 async fn img_gen0(req: HttpRequest) -> Result<impl Responder> {
     let data = req.uri().path().split("/").skip(3).next().unwrap();
-    let cursor = make_png(32, 32, 16, &data)?;
+    let cursor = make_png(32, 32, 16, percent_decode_str(&data).into_iter().borrow_mut())?;
     Ok(HttpResponse::build(StatusCode::OK)
        .content_type("image/png")
        .body(cursor.into_inner()))