Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::rc::Rc;
- struct ObjectData<'a>{
- renderer: Rc<Renderer + 'a> ,
- }
- struct Object<'a>{
- data: ObjectData<'a>,
- }
- struct Scene<'a>{
- objects: Vec<Object<'a>>,
- }
- impl<'a> Scene<'a> {
- fn new() -> Self {
- unimplemented!()
- }
- fn load(&'a mut self, loader: fn(scene: &'a mut Scene<'a>)){
- loader(self);
- }
- }
- fn main() {
- let mut scene = Scene::new();
- scene.load(load);
- }
- fn load<'a>(_scene: &'a mut Scene<'a>){
- }
- pub trait Renderer {
- fn draw(&self);
- }
- pub struct SpriteRenderer<'a>{
- pub shader: &'a Shader
- }
- impl<'a> Renderer for SpriteRenderer<'a> {
- fn draw(&self) {}
- }
- pub struct Shader {
- pub id:u32
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement