1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use appscraps_dll_error::Result as FuncResult; use appscraps_dll_error::WrapErr; use appscraps_static::ENVIRONMENT; use serde_json; use std::fs; #[no_mangle] pub extern fn get_file_from_submodule(get_file_from_submodule_params: &str) -> FuncResult<String> { let environment = try!(ENVIRONMENT.get().wrap_err_to_err()); let path_resolver = environment.get_path_resolver(); let (file, submodule_id, module_id): (String, usize, usize) = try!(serde_json::from_str(&get_file_from_submodule_params).wrap_err_to_err()); let path = try!(path_resolver.find_submodule_file_path(&file, module_id, submodule_id).wrap_err_to_err()); let absolute_path = try!(fs::canonicalize(path).wrap_err_to_err()); let result = absolute_path.to_string_lossy().into_owned(); Ok(result) }