Updated settings::utils::write_file’s signature for more flexibility
`write_file` now accepts as its second argument any type that implements the `ToString` trait so that not only Strings will be accepted but any type that can be turned into one.
This commit is contained in:
parent
488ceba1bb
commit
8642067eb3
@ -188,7 +188,7 @@ fn write_settings() {
|
||||
version: "1"
|
||||
categories: []
|
||||
rules: []"#;
|
||||
utils::write_file(&path, serde_yaml::to_string(&s).unwrap()).unwrap();
|
||||
utils::write_file(&path, &serde_yaml::to_string(&s).unwrap()).unwrap();
|
||||
assert_eq!(settings, utils::read_file(&path).unwrap());
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,6 @@ pub fn read_file(path: &Path) -> Result<String> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn write_file(path: &Path, content: String) -> Result<()> {
|
||||
/// Write a `String` into a file
|
||||
///
|
||||
/// # Example
|
||||
@ -54,6 +53,10 @@ pub fn write_file(path: &Path, content: String) -> Result<()> {
|
||||
/// let path = std::path::Path::new("./path/to/my/file.txt");
|
||||
/// lang_evolve_core::settings::utils::write_file(&path, &content).unwrap();
|
||||
/// ```
|
||||
pub fn write_file<S>(path: &Path, content: &S) -> Result<()>
|
||||
where
|
||||
S: std::string::ToString,
|
||||
{
|
||||
use std::io::prelude::*;
|
||||
let mut file = match File::create(&path) {
|
||||
Err(e) => {
|
||||
@ -62,7 +65,7 @@ pub fn write_file(path: &Path, content: String) -> Result<()> {
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
match file.write_all(content.as_bytes()) {
|
||||
match file.write_all(content.to_string().as_bytes()) {
|
||||
Err(e) => {
|
||||
warn!(
|
||||
"Could not write settings to file {}: {}",
|
||||
|
Loading…
Reference in New Issue
Block a user