difftreelog
Merge pull request #24 from CertainLach/issue-23
in: master
1 file changed
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth193 pub(crate) fn import_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Val> {193 pub(crate) fn import_file(&self, from: &PathBuf, path: &PathBuf) -> Result<Val> {194 let file_path = self.resolve_file(from, path)?;194 let file_path = self.resolve_file(from, path)?;195 {195 {196 let data = self.data();196 let files = &self.data().files;197 let files = &data.files;197 if files.contains_key(&file_path) {198 if files.contains_key(&file_path) {199 drop(data);198 return self.evaluate_loaded_file_raw(&file_path);200 return self.evaluate_loaded_file_raw(&file_path);199 }201 }200 }202 }902 Ok(())904 Ok(())903 }905 }906907 struct TestImportResolver(Rc<str>);908 impl crate::import::ImportResolver for TestImportResolver {909 fn resolve_file(&self, _: &PathBuf, _: &PathBuf) -> crate::error::Result<Rc<PathBuf>> {910 Ok(Rc::new(PathBuf::from("/test")))911 }912913 fn load_file_contents(&self, _: &PathBuf) -> crate::error::Result<Rc<str>> {914 Ok(self.0.clone())915 }916917 unsafe fn as_any(&self) -> &dyn std::any::Any {918 panic!()919 }920 }921922 #[test]923 fn issue_23() {924 let state = EvaluationState::default();925 state.set_import_resolver(Box::new(TestImportResolver(r#"import "/test""#.into())));926 let _ = state.evaluate_file_raw(&PathBuf::from("/test"));927 }904}928}905929