pnm decoding and encoding
Diffstat (limited to 'src/pgm.rs')
-rw-r--r--src/pgm.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pgm.rs b/src/pgm.rs
index f2dcb73..f1f2cb8 100644
--- a/src/pgm.rs
+++ b/src/pgm.rs
@@ -40,7 +40,10 @@ pub mod plain {
.split(u8::is_ascii_whitespace)
.filter(|x| !x.is_empty() && x.len() <= 3)
.filter(|x| x.iter().all(u8::is_ascii_digit))
- .map(|x| x.iter().fold(0, |acc, &x| acc * 10 + (x - b'0')))
+ .flat_map(|x| {
+ x.iter()
+ .try_fold(0u8, |acc, &x| acc.checked_mul(10)?.checked_add(x - b'0'))
+ })
.map(|x| {
if max == 255 {
x