Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::marker::PhantomData;
- struct Object<'a>{
- _ps: PhantomData<&'a ()>
- }
- struct Scene<'a>{
- objects: Vec<Object<'a>>,
- }
- impl<'a> Scene<'a>{
- fn load(&'a mut self, loader: fn(scene: &'a mut Scene<'a>)){
- loader(self);
- }
- fn new() -> Self {
- unimplemented!()
- }
- }
- fn load<'a>(scene: &'a mut Scene<'a>){
- // let shader = Shader{id: 1};
- // scene.resources.push(Box::new(shader));
- // let render = SpriteRenderer{shader:
- // scene.resources[0].downcast_ref().unwrap()};
- // let data = ObjectData{
- // resources: &scene.resources,
- // scene_event: scene.tx.clone(),
- // renderer:Rc::new(render)};
- // let object = Object{ data,controller: None};
- // scene.objects.push(object);
- }
- fn main() {
- let mut scene = Scene::new();
- scene.load(load);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement