Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. use std::cell::RefCell;
  2. use std::collections::TreeMap;
  3.  
  4. static INTRISIC_VALUE_LABEL : &'static str = "whatever";
  5.  
  6. enum LangVal<T> {
  7. Nil,
  8. Obj(T)
  9. }
  10.  
  11. trait LangObj {}
  12.  
  13. struct NormalObj<'a> {
  14. properties: RefCell<TreeMap<String, LangVal<LangObj + 'a>>>
  15. }
  16.  
  17. impl<'a> LangObj for NormalObj<'a> {}
  18.  
  19. struct World<'a> {
  20. intrinsics: RefCell<TreeMap<&'static str, LangVal<LangObj + 'a>>>
  21. }
  22.  
  23. fn create_world<'a>() -> World<'a> {
  24. let world = World{
  25. intrinsics: RefCell::new(TreeMap::new())
  26. };
  27. create_intrinsics(&world);
  28. world
  29. }
  30.  
  31. fn create_intrinsics(w: &World) {
  32. let base_obj = NormalObj{
  33. properties: RefCell::new(TreeMap::new())
  34. };
  35. w.intrinsics.borrow_mut().insert(INTRISIC_VALUE_LABEL, Obj(base_obj));
  36. }
  37.  
  38. fn main() {
  39. let world = create_world();
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement