1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
use appscraps_dll::util::FuncList; use appscraps_dll::util::FuncMap; use appscraps_event::util::EventList; use appscraps_event::util::EventMap; use appscraps_module::util::ModuleList; use appscraps_module::util::ModuleMap; use appscraps_module::util::PathResolver; use simplisp::Environment as LispEnvironment; use std::sync::LockResult; use std::sync::RwLock; use std::sync::RwLockReadGuard; use std::sync::RwLockWriteGuard; pub struct Environment { event_list: EventList, event_map: EventMap, func_list: FuncList, func_map: FuncMap, lisp_environment: RwLock<LispEnvironment<Environment>>, module_list: ModuleList, module_map: ModuleMap, path_resolver: PathResolver, } impl Environment { pub fn new( event_list: EventList, event_map: EventMap, func_list: FuncList, func_map: FuncMap, lisp_environment: LispEnvironment<Environment>, module_list: ModuleList, module_map: ModuleMap, path_resolver: PathResolver, ) -> Self { Environment { event_list: event_list, event_map: event_map, func_list: func_list, func_map: func_map, lisp_environment: RwLock::new(lisp_environment), module_list: module_list, module_map: module_map, path_resolver: path_resolver, } } pub fn get_event_list(&self) -> &EventList { &self.event_list } pub fn get_event_map(&self) -> &EventMap { &self.event_map } pub fn get_func_list(&self) -> &FuncList { &self.func_list } pub fn get_func_map(&self) -> &FuncMap { &self.func_map } pub fn get_lisp_environment(&self) -> LockResult<RwLockReadGuard<LispEnvironment<Environment>>> { self.lisp_environment.read() } pub fn get_lisp_environment_mut(&self) -> LockResult<RwLockWriteGuard<LispEnvironment<Environment>>> { self.lisp_environment.write() } pub fn get_module_list(&self) -> &ModuleList { &self.module_list } pub fn get_module_map(&self) -> &ModuleMap { &self.module_map } pub fn get_path_resolver(&self) -> &PathResolver { &self.path_resolver } }