summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-04-18 14:31:09 +0200
committerLaurenz <laurmaedje@gmail.com>2023-04-18 14:31:32 +0200
commitbce83d330f0efc0f8cdd6fb01d8244cb9f01ac27 (patch)
tree9e5d7add02a59b64725e25f866eb223514716a8f /src
parent4613739748bd3110a96a2883440d6e36448729a1 (diff)
Remove intermediate strings in error message
Diffstat (limited to 'src')
-rw-r--r--src/diag.rs12
-rw-r--r--src/image.rs6
2 files changed, 10 insertions, 8 deletions
diff --git a/src/diag.rs b/src/diag.rs
index c1a7c834..88141062 100644
--- a/src/diag.rs
+++ b/src/diag.rs
@@ -249,31 +249,31 @@ impl From<FileError> for EcoString {
}
/// Format a user-facing error message for an XML-like file format.
-pub fn format_xml_like_error(format: &str, error: roxmltree::Error) -> String {
+pub fn format_xml_like_error(format: &str, error: roxmltree::Error) -> EcoString {
match error {
roxmltree::Error::UnexpectedCloseTag { expected, actual, pos } => {
- format!(
+ eco_format!(
"failed to parse {format}: found closing tag '{actual}' \
instead of '{expected}' in line {}",
pos.row
)
}
roxmltree::Error::UnknownEntityReference(entity, pos) => {
- format!(
+ eco_format!(
"failed to parse {format}: unknown entity '{entity}' in line {}",
pos.row
)
}
roxmltree::Error::DuplicatedAttribute(attr, pos) => {
- format!(
+ eco_format!(
"failed to parse {format}: duplicate attribute '{attr}' in line {}",
pos.row
)
}
roxmltree::Error::NoRootNode => {
- format!("failed to parse {format}: missing root node")
+ eco_format!("failed to parse {format}: missing root node")
}
roxmltree::Error::SizeLimit => "file is too large".into(),
- _ => format!("failed to parse {format}"),
+ _ => eco_format!("failed to parse {format}"),
}
}
diff --git a/src/image.rs b/src/image.rs
index 44b00adb..23ea60f5 100644
--- a/src/image.rs
+++ b/src/image.rs
@@ -3,6 +3,8 @@
use std::io;
use std::sync::Arc;
+use ecow::EcoString;
+
use crate::diag::{format_xml_like_error, StrResult};
use crate::util::Buffer;
@@ -152,7 +154,7 @@ fn determine_size(data: &Buffer, format: ImageFormat) -> StrResult<(u32, u32)> {
}
/// Format the user-facing raster graphic decoding error message.
-fn format_image_error(error: image::ImageError) -> String {
+fn format_image_error(error: image::ImageError) -> EcoString {
match error {
image::ImageError::Limits(_) => "file is too large".into(),
_ => "failed to decode image".into(),
@@ -160,7 +162,7 @@ fn format_image_error(error: image::ImageError) -> String {
}
/// Format the user-facing SVG decoding error message.
-fn format_usvg_error(error: usvg::Error) -> String {
+fn format_usvg_error(error: usvg::Error) -> EcoString {
match error {
usvg::Error::NotAnUtf8Str => "file is not valid utf-8".into(),
usvg::Error::MalformedGZip => "file is not compressed correctly".into(),