summaryrefslogtreecommitdiffstats
path: root/src/assets.rs
diff options
context:
space:
mode:
authorMartin Nordholts <enselic@gmail.com>2021-08-26 13:12:21 +0200
committerGitHub <noreply@github.com>2021-08-26 13:12:21 +0200
commit19c3e82abf70324dcf9d1c310aed7881f44fd35f (patch)
tree702a8302f6274bdd2dbd37947198d2b2ba8f0e5d /src/assets.rs
parentf1c0fd7343c6c4c6a5ec198e533a6e8de3369472 (diff)
Replace deprecated 'error-chain' with 'thiserror' (#1820)
We can't use #[from] on Error::Msg(String) because String does not implement Error. (Which it shouldn't; see e.g. https://internals.rust-lang.org/t/impl-error-for-string/8881.) So we implement From manually for Error::Msg, since our current code was written in that way for error-chain.
Diffstat (limited to 'src/assets.rs')
-rw-r--r--src/assets.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/assets.rs b/src/assets.rs
index 2b71cf12..1bfe4f6d 100644
--- a/src/assets.rs
+++ b/src/assets.rs
@@ -163,7 +163,7 @@ impl HighlightingAssets {
syntax_set
.find_syntax_by_token(language)
.map(|syntax| SyntaxReferenceInSet { syntax, syntax_set })
- .ok_or_else(|| ErrorKind::UnknownSyntax(language.to_owned()).into())
+ .ok_or_else(|| Error::UnknownSyntax(language.to_owned()))
} else {
let line_syntax = self.get_first_line_syntax(&mut input.reader)?;
@@ -189,30 +189,27 @@ impl HighlightingAssets {
.unwrap_or_else(|| path.to_owned());
match mapping.get_syntax_for(absolute_path) {
- Some(MappingTarget::MapToUnknown) => line_syntax.ok_or_else(|| {
- ErrorKind::UndetectedSyntax(path.to_string_lossy().into()).into()
- }),
+ Some(MappingTarget::MapToUnknown) => line_syntax
+ .ok_or_else(|| Error::UndetectedSyntax(path.to_string_lossy().into())),
Some(MappingTarget::MapTo(syntax_name)) => {
let syntax_set = self.get_syntax_set()?;
syntax_set
.find_syntax_by_name(syntax_name)
.map(|syntax| SyntaxReferenceInSet { syntax, syntax_set })
- .ok_or_else(|| ErrorKind::UnknownSyntax(syntax_name.to_owned()).into())
+ .ok_or_else(|| Error::UnknownSyntax(syntax_name.to_owned()))
}
None => {
let file_name = path.file_name().unwrap_or_default();
self.get_extension_syntax(file_name)?
.or(line_syntax)
- .ok_or_else(|| {
- ErrorKind::UndetectedSyntax(path.to_string_lossy().into()).into()
- })
+ .ok_or_else(|| Error::UndetectedSyntax(path.to_string_lossy().into()))
}
}
} else {
// If a path wasn't provided, we fall back to the detect first-line syntax.
- line_syntax.ok_or_else(|| ErrorKind::UndetectedSyntax("[unknown]".into()).into())
+ line_syntax.ok_or_else(|| Error::UndetectedSyntax("[unknown]".into()))
}
}
}
@@ -314,14 +311,14 @@ pub(crate) fn get_integrated_themeset() -> ThemeSet {
}
fn asset_from_cache<T: serde::de::DeserializeOwned>(path: &Path, description: &str) -> Result<T> {
- let contents = fs::read(path).chain_err(|| {
+ let contents = fs::read(path).map_err(|_| {
format!(
"Could not load cached {} '{}'",
description,
path.to_string_lossy()
)
})?;
- from_reader(&contents[..]).chain_err(|| format!("Could not parse cached {}", description))
+ from_reader(&contents[..]).map_err(|_| format!("Could not parse cached {}", description).into())
}
#[cfg(test)]