1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use appscraps_dll_error::Result as FuncResult; use appscraps_dll_error::WrapErr; use appscraps_static::ENVIRONMENT; use serde_json; #[no_mangle] pub extern fn get_modules_with_submodule(submodule_id: &str) -> FuncResult<String> { let environment = try!(ENVIRONMENT.get().wrap_err_to_err()); let module_list = environment.get_module_list(); let path_resolver = environment.get_path_resolver(); let submodule_id: usize = try!(submodule_id.parse().wrap_err_to_err()); let mut result = Vec::new(); for module in module_list { let module_id = module.get_index(); if try!(path_resolver.has_submodule(module_id, submodule_id).wrap_err_to_err()) { result.push(module_id); } } let result = try!(serde_json::to_string(&result).wrap_err_to_err()); Ok(result) }