on master help sign in
Switch from toml::from_slice to toml::from_str (#5659)
e9dc9f4Pascal Kuthe
helix-loader/src/config.rs+6−3
@@ -1,6 +1,9 @@
1+use std::str::from_utf8;
2+
1/// Default built-in languages.toml.
3/// Default built-in languages.toml.
2pub fn default_lang_config() -> toml::Value {
4pub fn default_lang_config() -> toml::Value {
3− toml::from_slice(include_bytes!("../../languages.toml"))
5+ let default_config = include_bytes!("../../languages.toml");
6+ toml::from_str(from_utf8(default_config).unwrap())
4 .expect("Could not parse built-in languages.toml to valid toml")
7 .expect("Could not parse built-in languages.toml to valid toml")
5}
8}
6
9
@@ -11,8 +14,8 @@ pub fn user_lang_config() -> Result<toml::Value, toml::de::Error> {
11 .chain([crate::config_dir()].into_iter())
14 .chain([crate::config_dir()].into_iter())
12 .map(|path| path.join("languages.toml"))
15 .map(|path| path.join("languages.toml"))
13 .filter_map(|file| {
16 .filter_map(|file| {
14− std::fs::read(&file)
17+ std::fs::read_to_string(&file)
15− .map(|config| toml::from_slice(&config))
18+ .map(|config| toml::from_str(&config))
16 .ok()
19 .ok()
17 })
20 })
18 .collect::<Result<Vec<_>, _>>()?
21 .collect::<Result<Vec<_>, _>>()?
helix-loader/src/lib.rs+8−4
@@ -179,6 +179,8 @@ pub fn merge_toml_values(left: toml::Value, right: toml::Value, merge_depth: usi
179
179
180#[cfg(test)]
180#[cfg(test)]
181mod merge_toml_tests {
181mod merge_toml_tests {
182+ use std::str;
183+
182 use super::merge_toml_values;
184 use super::merge_toml_values;
183 use toml::Value;
185 use toml::Value;
184
186
@@ -191,8 +193,9 @@ mod merge_toml_tests {
191 indent = { tab-width = 4, unit = " ", test = "aaa" }
193 indent = { tab-width = 4, unit = " ", test = "aaa" }
192 "#;
194 "#;
193
195
194− let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
196+ let base = include_bytes!("../../languages.toml");
197+ let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
195− .expect("Couldn't parse built-in languages config");
198+ let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
196 let user: Value = toml::from_str(USER).unwrap();
199 let user: Value = toml::from_str(USER).unwrap();
197
200
198 let merged = merge_toml_values(base, user, 3);
201 let merged = merge_toml_values(base, user, 3);
@@ -224,8 +227,9 @@ mod merge_toml_tests {
224 language-server = { command = "deno", args = ["lsp"] }
227 language-server = { command = "deno", args = ["lsp"] }
225 "#;
228 "#;
226
229
227− let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
230+ let base = include_bytes!("../../languages.toml");
231+ let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
228− .expect("Couldn't parse built-in languages config");
232+ let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
229 let user: Value = toml::from_str(USER).unwrap();
233 let user: Value = toml::from_str(USER).unwrap();
230
234
231 let merged = merge_toml_values(base, user, 3);
235 let merged = merge_toml_values(base, user, 3);
helix-view/src/theme.rs+7−5
@@ -1,6 +1,7 @@
1use std::{
1use std::{
2 collections::HashMap,
2 collections::HashMap,
3 path::{Path, PathBuf},
3 path::{Path, PathBuf},
4+ str,
4};
5};
5
6
6use anyhow::{anyhow, Context, Result};
7use anyhow::{anyhow, Context, Result};
@@ -15,12 +16,13 @@ use crate::graphics::UnderlineStyle;
15pub use crate::graphics::{Color, Modifier, Style};
16pub use crate::graphics::{Color, Modifier, Style};
16
17
17pub static DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
18pub static DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
18− toml::from_slice(include_bytes!("../../theme.toml")).expect("Failed to parse default theme")
19+ let bytes = include_bytes!("../../theme.toml");
20+ toml::from_str(str::from_utf8(bytes).unwrap()).expect("Failed to parse base default theme")
19});
21});
20
22
21pub static BASE16_DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
23pub static BASE16_DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
22− toml::from_slice(include_bytes!("../../base16_theme.toml"))
24+ let bytes = include_bytes!("../../base16_theme.toml");
23− .expect("Failed to parse base 16 default theme")
25+ toml::from_str(str::from_utf8(bytes).unwrap()).expect("Failed to parse base 16 default theme")
24});
26});
25
27
26pub static DEFAULT_THEME: Lazy<Theme> = Lazy::new(|| Theme {
28pub static DEFAULT_THEME: Lazy<Theme> = Lazy::new(|| Theme {
@@ -148,8 +150,8 @@ impl Loader {
148
150
149 // Loads the theme data as `toml::Value` first from the user_dir then in default_dir
151 // Loads the theme data as `toml::Value` first from the user_dir then in default_dir
150 fn load_toml(&self, path: PathBuf) -> Result<Value> {
152 fn load_toml(&self, path: PathBuf) -> Result<Value> {
151− let data = std::fs::read(&path)?;
153+ let data = std::fs::read_to_string(&path)?;
152− let value = toml::from_slice(data.as_slice())?;
154+ let value = toml::from_str(&data)?;
153
155
154 Ok(value)
156 Ok(value)
155 }
157 }
xtask/src/helpers.rs+2−2
@@ -39,6 +39,6 @@ pub fn find_files(dir: &Path, filename: &str) -> Vec<PathBuf> {
39}
39}
40
40
41pub fn lang_config() -> LangConfig {
41pub fn lang_config() -> LangConfig {
42− let bytes = std::fs::read(path::lang_config()).unwrap();
42+ let text = std::fs::read_to_string(path::lang_config()).unwrap();
43− toml::from_slice(&bytes).unwrap()
43+ toml::from_str(&text).unwrap()
44}
44}
xtask/src/themelint.rs+2−2
@@ -156,8 +156,8 @@ pub fn lint(file: String) -> Result<(), DynError> {
156 return Ok(());
156 return Ok(());
157 }
157 }
158 let path = path::themes().join(file.clone() + ".toml");
158 let path = path::themes().join(file.clone() + ".toml");
159− let theme = std::fs::read(&path).unwrap();
159+ let theme = std::fs::read_to_string(&path).unwrap();
160− let theme: Theme = toml::from_slice(&theme).expect("Failed to parse theme");
160+ let theme: Theme = toml::from_str(&theme).expect("Failed to parse theme");
161
161
162 let mut messages: Vec<String> = vec![];
162 let mut messages: Vec<String> = vec![];
163 get_rules().iter().for_each(|lint| match lint {
163 get_rules().iter().for_each(|lint| match lint {