difftreelog
style(evaluator) fix clippy warnings
in: master
3 files changed
crates/jsonnet-evaluator/src/evaluate.rsdiffbeforeafterboth--- a/crates/jsonnet-evaluator/src/evaluate.rs
+++ b/crates/jsonnet-evaluator/src/evaluate.rs
@@ -5,9 +5,8 @@
};
use closure::closure;
use jsonnet_parser::{
- el, Arg, ArgsDesc, AssertStmt, BinaryOpType, BindSpec, CompSpec, Expr, FieldMember,
- ForSpecData, IfSpecData, LiteralType, LocExpr, Member, ObjBody, ParamsDesc, UnaryOpType,
- Visibility,
+ AssertStmt, BinaryOpType, BindSpec, CompSpec, Expr, FieldMember, ForSpecData, IfSpecData,
+ LiteralType, LocExpr, Member, ObjBody, ParamsDesc, UnaryOpType, Visibility,
};
use std::{
collections::{BTreeMap, HashMap},
@@ -203,7 +202,7 @@
})
}
-pub fn evaluate_member_list_object(context: Context, members: &Vec<Member>) -> Result<ObjValue> {
+pub fn evaluate_member_list_object(context: Context, members: &[Member]) -> Result<ObjValue> {
let new_bindings = FutureNewBindings::new();
let future_this = FutureObjValue::new();
let context_creator = context_creator!(
crates/jsonnet-evaluator/src/import.rsdiffbeforeafterboth1use crate::create_error;2use crate::error::{Error, Result};3use fs::File;4use std::fs;5use std::io::Read;6use std::{cell::RefCell, collections::HashMap, path::PathBuf, rc::Rc};78pub trait ImportResolver {9 fn resolve_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Rc<PathBuf>>;10 fn load_file_contents(&self, resolved: &PathBuf) -> Result<Rc<str>>;11}1213pub struct DummyImportResolver;14impl ImportResolver for DummyImportResolver {15 fn resolve_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Rc<PathBuf>> {16 create_error(Error::ImportNotSupported(from.clone(), path.clone()))17 }18 fn load_file_contents(&self, _resolved: &PathBuf) -> Result<Rc<str>> {19 // Can be only caused by library direct consumer, not by supplied jsonnet20 panic!("dummy resolver can't load any file")21 }22}23impl Default for Box<dyn ImportResolver> {24 fn default() -> Self {25 Box::new(DummyImportResolver)26 }27}2829pub struct FileImportResolver {30 pub library_paths: Vec<PathBuf>,31}32impl ImportResolver for FileImportResolver {33 fn resolve_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Rc<PathBuf>> {34 let mut new_path = from.clone();35 new_path.push(path);36 if new_path.exists() {37 Ok(Rc::new(new_path))38 } else {39 for library_path in self.library_paths.iter() {40 let mut cloned = library_path.clone();41 cloned.push(path);42 if cloned.exists() {43 return Ok(Rc::new(cloned));44 }45 }46 create_error(Error::ImportFileNotFound(from.clone(), path.clone()))47 }48 }49 fn load_file_contents(&self, id: &PathBuf) -> Result<Rc<str>> {50 let mut file = File::open(id).map_err(|_e| {51 create_error::<()>(Error::ResolvedFileNotFound(id.clone()))52 .err()53 .unwrap()54 })?;55 let mut out = String::new();56 file.read_to_string(&mut out).map_err(|_e| {57 create_error::<()>(Error::ImportBadFileUtf8(id.clone()))58 .err()59 .unwrap()60 })?;61 Ok(out.into())62 }63}6465pub struct CachingImportResolver {66 resolution_cache: RefCell<HashMap<(PathBuf, PathBuf), Result<Rc<PathBuf>>>>,67 loading_cache: RefCell<HashMap<PathBuf, Result<Rc<str>>>>,68 inner: Box<dyn ImportResolver>,69}70impl ImportResolver for CachingImportResolver {71 fn resolve_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Rc<PathBuf>> {72 self.resolution_cache73 .borrow_mut()74 .entry((from.clone(), path.clone()))75 .or_insert_with(|| self.inner.resolve_file(from, path))76 .clone()77 }78 fn load_file_contents(&self, resolved: &PathBuf) -> Result<Rc<str>> {79 self.loading_cache80 .borrow_mut()81 .entry(resolved.clone())82 .or_insert_with(|| self.inner.load_file_contents(resolved))83 .clone()84 }85}crates/jsonnet-evaluator/src/lib.rsdiffbeforeafterboth--- a/crates/jsonnet-evaluator/src/lib.rs
+++ b/crates/jsonnet-evaluator/src/lib.rs
@@ -200,7 +200,7 @@
self.0
.str_files
.borrow_mut()
- .insert(path.clone(), file_str.into());
+ .insert(path.clone(), file_str);
}
Ok(self.0.str_files.borrow().get(&path).cloned().unwrap())
}