summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Kuthe2023-01-24 16:07:01 +0000
committerGitHub2023-01-24 16:07:01 +0000
commite9dc9f493554bd54ea3710e66a2fb0fd2e70b462 (patch)
tree0b862501d0f5613a3c8dfe47789219ad985e0440
parent64ec0256d3e41d6b6e5a24f749489880a147ab8a (diff)
Switch from toml::from_slice to toml::from_str (#5659)
-rw-r--r--helix-loader/src/config.rs9
-rw-r--r--helix-loader/src/lib.rs12
-rw-r--r--helix-view/src/theme.rs12
-rw-r--r--xtask/src/helpers.rs4
-rw-r--r--xtask/src/themelint.rs4
5 files changed, 25 insertions, 16 deletions
diff --git a/helix-loader/src/config.rs b/helix-loader/src/config.rs
index 259b1318..a4c6dcbd 100644
--- a/helix-loader/src/config.rs
+++ b/helix-loader/src/config.rs
@@ -1,6 +1,9 @@
+use std::str::from_utf8;
+
/// Default built-in languages.toml.
pub fn default_lang_config() -> toml::Value {
- toml::from_slice(include_bytes!("../../languages.toml"))
+ let default_config = include_bytes!("../../languages.toml");
+ toml::from_str(from_utf8(default_config).unwrap())
.expect("Could not parse built-in languages.toml to valid toml")
}
@@ -11,8 +14,8 @@ pub fn user_lang_config() -> Result<toml::Value, toml::de::Error> {
.chain([crate::config_dir()].into_iter())
.map(|path| path.join("languages.toml"))
.filter_map(|file| {
- std::fs::read(&file)
- .map(|config| toml::from_slice(&config))
+ std::fs::read_to_string(&file)
+ .map(|config| toml::from_str(&config))
.ok()
})
.collect::<Result<Vec<_>, _>>()?
diff --git a/helix-loader/src/lib.rs b/helix-loader/src/lib.rs
index 80d44a82..8dc2928a 100644
--- a/helix-loader/src/lib.rs
+++ b/helix-loader/src/lib.rs
@@ -179,6 +179,8 @@ pub fn merge_toml_values(left: toml::Value, right: toml::Value, merge_depth: usi
#[cfg(test)]
mod merge_toml_tests {
+ use std::str;
+
use super::merge_toml_values;
use toml::Value;
@@ -191,8 +193,9 @@ mod merge_toml_tests {
indent = { tab-width = 4, unit = " ", test = "aaa" }
"#;
- let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
- .expect("Couldn't parse built-in languages config");
+ let base = include_bytes!("../../languages.toml");
+ let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
+ let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
let user: Value = toml::from_str(USER).unwrap();
let merged = merge_toml_values(base, user, 3);
@@ -224,8 +227,9 @@ mod merge_toml_tests {
language-server = { command = "deno", args = ["lsp"] }
"#;
- let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
- .expect("Couldn't parse built-in languages config");
+ let base = include_bytes!("../../languages.toml");
+ let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
+ let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
let user: Value = toml::from_str(USER).unwrap();
let merged = merge_toml_values(base, user, 3);
diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs
index cb0d3ac4..9eae88a8 100644
--- a/helix-view/src/theme.rs
+++ b/helix-view/src/theme.rs
@@ -1,6 +1,7 @@
use std::{
collections::HashMap,
path::{Path, PathBuf},
+ str,
};
use anyhow::{anyhow, Context, Result};
@@ -15,12 +16,13 @@ use crate::graphics::UnderlineStyle;
pub use crate::graphics::{Color, Modifier, Style};
pub static DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
- toml::from_slice(include_bytes!("../../theme.toml")).expect("Failed to parse default theme")
+ let bytes = include_bytes!("../../theme.toml");
+ toml::from_str(str::from_utf8(bytes).unwrap()).expect("Failed to parse base default theme")
});
pub static BASE16_DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
- toml::from_slice(include_bytes!("../../base16_theme.toml"))
- .expect("Failed to parse base 16 default theme")
+ let bytes = include_bytes!("../../base16_theme.toml");
+ toml::from_str(str::from_utf8(bytes).unwrap()).expect("Failed to parse base 16 default theme")
});
pub static DEFAULT_THEME: Lazy<Theme> = Lazy::new(|| Theme {
@@ -148,8 +150,8 @@ impl Loader {
// Loads the theme data as `toml::Value` first from the user_dir then in default_dir
fn load_toml(&self, path: PathBuf) -> Result<Value> {
- let data = std::fs::read(&path)?;
- let value = toml::from_slice(data.as_slice())?;
+ let data = std::fs::read_to_string(&path)?;
+ let value = toml::from_str(&data)?;
Ok(value)
}
diff --git a/xtask/src/helpers.rs b/xtask/src/helpers.rs
index 4f759e74..f96cdfb3 100644
--- a/xtask/src/helpers.rs
+++ b/xtask/src/helpers.rs
@@ -39,6 +39,6 @@ pub fn find_files(dir: &Path, filename: &str) -> Vec<PathBuf> {
}
pub fn lang_config() -> LangConfig {
- let bytes = std::fs::read(path::lang_config()).unwrap();
- toml::from_slice(&bytes).unwrap()
+ let text = std::fs::read_to_string(path::lang_config()).unwrap();
+ toml::from_str(&text).unwrap()
}
diff --git a/xtask/src/themelint.rs b/xtask/src/themelint.rs
index 06dfae40..e9980574 100644
--- a/xtask/src/themelint.rs
+++ b/xtask/src/themelint.rs
@@ -156,8 +156,8 @@ pub fn lint(file: String) -> Result<(), DynError> {
return Ok(());
}
let path = path::themes().join(file.clone() + ".toml");
- let theme = std::fs::read(&path).unwrap();
- let theme: Theme = toml::from_slice(&theme).expect("Failed to parse theme");
+ let theme = std::fs::read_to_string(&path).unwrap();
+ let theme: Theme = toml::from_str(&theme).expect("Failed to parse theme");
let mut messages: Vec<String> = vec![];
get_rules().iter().for_each(|lint| match lint {