Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::cell::RefCell;
- use std::collections::TreeMap;
- static INTRISIC_VALUE_LABEL : &'static str = "whatever";
- enum LangVal<T> {
- Nil,
- Obj(T)
- }
- trait LangObj {}
- struct NormalObj<'a> {
- properties: RefCell<TreeMap<String, LangVal<LangObj + 'a>>>
- }
- impl<'a> LangObj for NormalObj<'a> {}
- struct World<'a> {
- intrinsics: RefCell<TreeMap<&'static str, LangVal<LangObj + 'a>>>
- }
- fn create_world<'a>() -> World<'a> {
- let world = World{
- intrinsics: RefCell::new(TreeMap::new())
- };
- create_intrinsics(&world);
- world
- }
- fn create_intrinsics(w: &World) {
- let base_obj = NormalObj{
- properties: RefCell::new(TreeMap::new())
- };
- w.intrinsics.borrow_mut().insert(INTRISIC_VALUE_LABEL, Obj(base_obj));
- }
- fn main() {
- let world = create_world();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement