Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. use std::rc::Rc;
  2.  
  3. struct ObjectData<'a>{
  4. renderer: Rc<Renderer + 'a> ,
  5. }
  6.  
  7. struct Object<'a>{
  8. data: ObjectData<'a>,
  9. }
  10.  
  11. struct Scene<'a>{
  12. objects: Vec<Object<'a>>,
  13. }
  14.  
  15. impl<'a> Scene<'a> {
  16. fn new() -> Self {
  17. unimplemented!()
  18. }
  19.  
  20. fn load(&'a mut self, loader: fn(scene: &'a mut Scene<'a>)){
  21. loader(self);
  22. }
  23. }
  24.  
  25. fn main() {
  26. let mut scene = Scene::new();
  27. scene.load(load);
  28. }
  29.  
  30. fn load<'a>(_scene: &'a mut Scene<'a>){
  31.  
  32. }
  33.  
  34. pub trait Renderer {
  35. fn draw(&self);
  36. }
  37.  
  38. pub struct SpriteRenderer<'a>{
  39. pub shader: &'a Shader
  40. }
  41.  
  42. impl<'a> Renderer for SpriteRenderer<'a> {
  43. fn draw(&self) {}
  44. }
  45.  
  46. pub struct Shader {
  47. pub id:u32
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement