Skip to content

Commit 31fa22f

Browse files
authored
Merge pull request #12 from SimonErm/feature/linter-improvements
Feature/linter improvements
2 parents cf08604 + 675e2a4 commit 31fa22f

File tree

2 files changed

+26
-19
lines changed

2 files changed

+26
-19
lines changed

.github/workflows/main.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@ concurrency:
1212
cancel-in-progress: true
1313

1414
jobs:
15+
run-clippy:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- id: checkout
19+
uses: actions/checkout@v4
20+
- name: Cache
21+
uses: actions/cache@v4
22+
with:
23+
path: |
24+
~/.cargo/bin/
25+
~/.cargo/registry/index/
26+
~/.cargo/registry/cache/
27+
~/.cargo/git/db/
28+
target/
29+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
30+
- run: cargo clippy --all-targets --all-features -- -D warnings
1531
run-tests:
1632
runs-on: ubuntu-latest
1733
steps:

src/main.rs

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use axum::{
1010
use axum_typed_multipart::{FieldData, TryFromMultipart, TypedMultipart};
1111
use imageproc::image::{
1212
codecs::jpeg::JpegEncoder,
13-
error::EncodingError,
1413
imageops::{overlay, FilterType},
1514
DynamicImage, ImageError, ImageFormat, ImageReader,
1615
};
@@ -40,7 +39,6 @@ enum AppError {
4039
EncodingFailure,
4140
SvgParserFailure,
4241
InvalidSize,
43-
RenderFailure(EncodingError),
4442
}
4543

4644
impl IntoResponse for AppError {
@@ -57,11 +55,11 @@ impl IntoResponse for AppError {
5755
}
5856

5957
let (status, message) = match self {
60-
AppError::DecodingFailure(_) => (
58+
AppError::DecodingFailure(err) => (
6159
StatusCode::INTERNAL_SERVER_ERROR,
6260
ErrorResponse {
6361
title: "Decoding-Error".into(),
64-
details: "Failed to decode one of the overlays".into(),
62+
details: format!("Failed to decode one of the overlays. {}", err),
6563
},
6664
),
6765
AppError::MissingMimeType => (
@@ -99,13 +97,6 @@ impl IntoResponse for AppError {
9997
details: "The image or overlay has an invalid size".into(),
10098
},
10199
),
102-
AppError::RenderFailure(_) => (
103-
StatusCode::INTERNAL_SERVER_ERROR,
104-
ErrorResponse {
105-
title: "Svg-Error".into(),
106-
details: "Failed to parse one of the svg-overlays".into(),
107-
},
108-
),
109100
};
110101

111102
(status, axum::Json(message)).into_response()
@@ -141,13 +132,13 @@ fn prepare_layers(
141132

142133
let rgba = pixmap.encode_png().map_err(|_| AppError::EncodingFailure)?;
143134
let mut overlay_reader =
144-
ImageReader::new(Cursor::new(Bytes::from_iter(rgba.into_iter())));
135+
ImageReader::new(Cursor::new(Bytes::from_iter(rgba)));
145136
overlay_reader.set_format(ImageFormat::Png);
146137
let mut overlay_image = overlay_reader
147138
.decode()
148-
.map_err(|err| AppError::DecodingFailure(err))?;
139+
.map_err(AppError::DecodingFailure)?;
149140
overlay_image = overlay_image.resize(image_witdh, image_height, FilterType::Nearest);
150-
return Ok(overlay_image);
141+
Ok(overlay_image)
151142
} else {
152143
let mut overlay_reader = ImageReader::new(Cursor::new(layer.contents.clone()));
153144
let mimetype = layer.metadata.content_type.as_ref();
@@ -158,9 +149,9 @@ fn prepare_layers(
158149
);
159150
let mut overlay_image = overlay_reader
160151
.decode()
161-
.map_err(|err| AppError::DecodingFailure(err))?;
152+
.map_err(AppError::DecodingFailure)?;
162153
overlay_image = overlay_image.resize(image_witdh, image_height, FilterType::Nearest);
163-
return Ok(overlay_image);
154+
Ok(overlay_image)
164155
}
165156
}
166157
}
@@ -178,15 +169,15 @@ async fn create_document(
178169
);
179170
let image = image_reader
180171
.decode()
181-
.map_err(|err| AppError::DecodingFailure(err))?;
172+
.map_err(AppError::DecodingFailure)?;
182173

183174
let result: Result<DynamicImage, AppError> = payload
184175
.layers
185176
.iter()
186177
.map(prepare_layers(image.width(), image.height()))
187178
.try_fold(image.clone(), |mut acc, layer| {
188179
overlay(&mut acc, &layer?, 0, 0);
189-
return Ok(acc);
180+
Ok(acc)
190181
});
191182

192183
let mut default = vec![];
@@ -197,5 +188,5 @@ async fn create_document(
197188

198189
let mut headers = HeaderMap::new();
199190
headers.insert("Content-Type", "image/jpeg".parse().unwrap());
200-
return Ok((headers, default));
191+
Ok((headers, default))
201192
}

0 commit comments

Comments
 (0)