Skip to content

Commit ed6f9ef

Browse files
committed
switch from toml::from_slice to toml::from_str
1 parent 17acadb commit ed6f9ef

File tree

5 files changed

+25
-16
lines changed

5 files changed

+25
-16
lines changed

helix-loader/src/config.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
use std::str::from_utf8;
2+
13
/// Default built-in languages.toml.
24
pub 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())
47
.expect("Could not parse built-in languages.toml to valid toml")
58
}
69

@@ -11,8 +14,8 @@ pub fn user_lang_config() -> Result<toml::Value, toml::de::Error> {
1114
.chain([crate::config_dir()].into_iter())
1215
.map(|path| path.join("languages.toml"))
1316
.filter_map(|file| {
14-
std::fs::read(&file)
15-
.map(|config| toml::from_slice(&config))
17+
std::fs::read_to_string(&file)
18+
.map(|config| toml::from_str(&config))
1619
.ok()
1720
})
1821
.collect::<Result<Vec<_>, _>>()?

helix-loader/src/lib.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ pub fn merge_toml_values(left: toml::Value, right: toml::Value, merge_depth: usi
179179

180180
#[cfg(test)]
181181
mod merge_toml_tests {
182+
use std::str;
183+
182184
use super::merge_toml_values;
183185
use toml::Value;
184186

@@ -191,8 +193,9 @@ mod merge_toml_tests {
191193
indent = { tab-width = 4, unit = " ", test = "aaa" }
192194
"#;
193195

194-
let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
195-
.expect("Couldn't parse built-in languages config");
196+
let base = include_bytes!("../../languages.toml");
197+
let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
198+
let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
196199
let user: Value = toml::from_str(USER).unwrap();
197200

198201
let merged = merge_toml_values(base, user, 3);
@@ -224,8 +227,9 @@ mod merge_toml_tests {
224227
language-server = { command = "deno", args = ["lsp"] }
225228
"#;
226229

227-
let base: Value = toml::from_slice(include_bytes!("../../languages.toml"))
228-
.expect("Couldn't parse built-in languages config");
230+
let base = include_bytes!("../../languages.toml");
231+
let base = str::from_utf8(base).expect("Couldn't parse built-in languages config");
232+
let base: Value = toml::from_str(base).expect("Couldn't parse built-in languages config");
229233
let user: Value = toml::from_str(USER).unwrap();
230234

231235
let merged = merge_toml_values(base, user, 3);

helix-view/src/theme.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::{
22
collections::HashMap,
33
path::{Path, PathBuf},
4+
str,
45
};
56

67
use anyhow::{anyhow, Context, Result};
@@ -15,12 +16,13 @@ use crate::graphics::UnderlineStyle;
1516
pub use crate::graphics::{Color, Modifier, Style};
1617

1718
pub 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")
1921
});
2022

2123
pub static BASE16_DEFAULT_THEME_DATA: Lazy<Value> = Lazy::new(|| {
22-
toml::from_slice(include_bytes!("../../base16_theme.toml"))
23-
.expect("Failed to parse base 16 default theme")
24+
let bytes = include_bytes!("../../base16_theme.toml");
25+
toml::from_str(str::from_utf8(bytes).unwrap()).expect("Failed to parse base 16 default theme")
2426
});
2527

2628
pub static DEFAULT_THEME: Lazy<Theme> = Lazy::new(|| Theme {
@@ -148,8 +150,8 @@ impl Loader {
148150

149151
// Loads the theme data as `toml::Value` first from the user_dir then in default_dir
150152
fn load_toml(&self, path: PathBuf) -> Result<Value> {
151-
let data = std::fs::read(&path)?;
152-
let value = toml::from_slice(data.as_slice())?;
153+
let data = std::fs::read_to_string(&path)?;
154+
let value = toml::from_str(&data)?;
153155

154156
Ok(value)
155157
}

xtask/src/helpers.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ pub fn find_files(dir: &Path, filename: &str) -> Vec<PathBuf> {
3939
}
4040

4141
pub fn lang_config() -> LangConfig {
42-
let bytes = std::fs::read(path::lang_config()).unwrap();
43-
toml::from_slice(&bytes).unwrap()
42+
let text = std::fs::read_to_string(path::lang_config()).unwrap();
43+
toml::from_str(&text).unwrap()
4444
}

xtask/src/themelint.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ pub fn lint(file: String) -> Result<(), DynError> {
156156
return Ok(());
157157
}
158158
let path = path::themes().join(file.clone() + ".toml");
159-
let theme = std::fs::read(&path).unwrap();
160-
let theme: Theme = toml::from_slice(&theme).expect("Failed to parse theme");
159+
let theme = std::fs::read_to_string(&path).unwrap();
160+
let theme: Theme = toml::from_str(&theme).expect("Failed to parse theme");
161161

162162
let mut messages: Vec<String> = vec![];
163163
get_rules().iter().for_each(|lint| match lint {

0 commit comments

Comments
 (0)