buttery-engine 0.1.0

A very simplistic game-engine written in rust. This is a learning project for me, so no promises on it's performance or stability.
Documentation
use std::any::Any;

use crate::{ui::ButteryUIModel, world_model::ButteryWorldModel};

pub trait ButteryRenderer: Send + Sync + Any {
    fn load_model(&mut self, path: &str);

    fn on_update(&mut self, world_model: &ButteryWorldModel);

    fn render(&mut self);

    fn resize(&mut self, width: u32, height: u32);

    fn update_ui_model(&mut self, ui_model: Option<ButteryUIModel>);

    fn as_any(&self) -> &dyn Any;

    fn as_any_mut(&mut self) -> &mut dyn Any;
}

pub struct FallbackRenderer {}

impl ButteryRenderer for FallbackRenderer {
    fn load_model(&mut self, _path: &str) {}

    fn on_update(&mut self, _world_model: &ButteryWorldModel) {}

    fn render(&mut self) {}

    fn resize(&mut self, _width: u32, _height: u32) {}

    fn update_ui_model(&mut self, _ui_model: Option<ButteryUIModel>) {}

    fn as_any(&self) -> &dyn Any {
        self
    }

    fn as_any_mut(&mut self) -> &mut dyn Any {
        self
    }
}