[librsvg: 9/32] Rename LoadingError::Unknown to LoadingError::Other




commit a6bb6e55244e507b4eb0f6cb2a2add73e15425c4
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Nov 25 12:46:20 2020 -0600

    Rename LoadingError::Unknown to LoadingError::Other
    
    And make it carry a string.  This will be the catch-all for loading errors.

 src/c_api/handle.rs |  4 ++--
 src/document.rs     | 10 +++++-----
 src/error.rs        |  6 +++---
 3 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/src/c_api/handle.rs b/src/c_api/handle.rs
index 808bdcaa..5af0d92a 100644
--- a/src/c_api/handle.rs
+++ b/src/c_api/handle.rs
@@ -802,7 +802,7 @@ impl CHandle {
                     "handle must not be already loaded in order to call \
                      rsvg_handle_read_stream_sync()",
                 );
-                Err(LoadingError::Unknown)
+                Err(LoadingError::Other(String::from("API ordering")))
             }
         }
     }
@@ -972,7 +972,7 @@ impl CHandle {
                     "handle must already be loaded in order to call \
                      rsvg_handle_set_stylesheet()",
                 );
-                Err(LoadingError::Unknown)
+                Err(LoadingError::Other(String::from("API ordering")))
             }
         }
     }
diff --git a/src/document.rs b/src/document.rs
index 082d46b4..55c8418f 100644
--- a/src/document.rs
+++ b/src/document.rs
@@ -229,7 +229,9 @@ fn load_image(
     loader.write(&bytes)?;
     loader.close()?;
 
-    let pixbuf = loader.get_pixbuf().ok_or(LoadingError::Unknown)?;
+    let pixbuf = loader.get_pixbuf().ok_or_else(|| {
+        LoadingError::Other(format!("loading image: {}", human_readable_url(aurl)))
+    })?;
 
     let bytes = if load_options.keep_image_data {
         Some(bytes)
@@ -256,13 +258,11 @@ fn image_loading_error_from_cairo(status: cairo::Status, aurl: &AllowedUrl) -> L
     let url = human_readable_url(aurl);
 
     match status {
-        cairo::Status::NoMemory => {
-            LoadingError::OutOfMemory(format!("loading image: {}", url))
-        }
+        cairo::Status::NoMemory => LoadingError::OutOfMemory(format!("loading image: {}", url)),
         cairo::Status::InvalidSize => {
             LoadingError::LimitExceeded(format!("image too big: {}", url))
         }
-        _ => LoadingError::Unknown,
+        _ => LoadingError::Other(format!("cairo error: {}", status)),
     }
 }
 
diff --git a/src/error.rs b/src/error.rs
index 977f48be..7d4da25d 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -351,8 +351,8 @@ pub enum LoadingError {
     /// A particular implementation-defined limit was exceeded.
     LimitExceeded(String),
 
-    // FIXME: only used internally when loading pixbufs, and temporarily in c_api.
-    Unknown,
+    /// Catch-all for loading errors.
+    Other(String),
 }
 
 impl error::Error for LoadingError {}
@@ -373,7 +373,7 @@ impl fmt::Display for LoadingError {
             LoadingError::RootElementIsNotSvg => write!(f, "root element is not <svg>"),
             LoadingError::Glib(ref e) => e.fmt(f),
             LoadingError::LimitExceeded(ref s) => write!(f, "limit exceeded: {}", s),
-            LoadingError::Unknown => write!(f, "unknown error"),
+            LoadingError::Other(ref s) => write!(f, "{}", s),
         }
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]