summaryrefslogtreecommitdiff
path: root/src/diag.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-02-17 18:12:13 +0100
committerLaurenz <laurmaedje@gmail.com>2022-02-17 18:12:13 +0100
commit261f387535ebe3b784d69893027d8edac01e1ba9 (patch)
treec255e10d01fa17fd361ec10fb0f1fdf3e5a0a860 /src/diag.rs
parent35610a8c6a1721010b933324dacfe2c4d58761a3 (diff)
Accept closures for heading styling
Diffstat (limited to 'src/diag.rs')
-rw-r--r--src/diag.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/diag.rs b/src/diag.rs
index 70a5bdaf..329e9a8a 100644
--- a/src/diag.rs
+++ b/src/diag.rs
@@ -108,3 +108,13 @@ impl<T> Trace<T> for TypResult<T> {
})
}
}
+
+/// Transform `expected X, found Y` into `expected X or A, found Y`.
+pub fn with_alternative(msg: String, alt: &str) -> String {
+ let mut parts = msg.split(", found ");
+ if let (Some(a), Some(b)) = (parts.next(), parts.next()) {
+ format!("{} or {}, found {}", a, alt, b)
+ } else {
+ msg
+ }
+}