use super::{CargoError, Result};
use std::{fs::File, io::Write, path::PathBuf};
use toml_edit::{value, Document, Item, Value};
pub(crate) fn sync(doc: &mut Document, path: PathBuf) -> Result<()> {
if !path.exists() {
return Err(CargoError::Io);
}
let mut f = File::create(path)?;
f.write_all(doc.to_string().as_bytes())?;
Ok(())
}
pub(crate) fn update_dependency(doc: &mut Document, dep: &String, ver: &String) {
match doc.as_table_mut().entry("dependencies") {
Item::Table(ref mut t) => match t.entry(dep.as_str()) {
Item::Value(Value::InlineTable(ref mut t)) => {
if let Some(v) = t.get_mut("version") {
*v = Value::from(ver.clone());
}
return;
}
_ => {}
},
_ => {}
}
}