diff --git a/src/app/mod.rs b/src/app/mod.rs index b384ebd..eeae390 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -87,9 +87,13 @@ impl State { self.error = result.as_ref().err().map(|e| e.to_string()); if let Ok((path, handle)) = result { - self.images - .entry(path) - .and_modify(|e| *e = MaybeImage::Loaded(handle)); + let entry = self.images.entry(path).or_default(); + + if matches!(entry, MaybeImage::Loaded(_)) { + self.error = Some("tried to load already-loaded image!".into()) + } else { + *entry = MaybeImage::Loaded(handle) + } } }