Skip to main content

tinygame_core/core/
plugins.rs

1use crate::{AppResult, core::world::World};
2
3pub struct PluginMeta {
4    pub name: &'static str,
5    pub depends_on: &'static [&'static str],
6}
7
8pub trait Plugin {
9    fn get_meta() -> PluginMeta;
10    fn init(_world: &mut World) -> AppResult {
11        AppResult::Continue
12    }
13    fn step(_world: &World) -> AppResult {
14        AppResult::Continue
15    }
16    fn pre_step(_world: &World) -> AppResult {
17        AppResult::Continue
18    }
19    fn post_step(_world: &World) -> AppResult {
20        AppResult::Continue
21    }
22    fn exit(_world: &World) -> () {
23        ()
24    }
25}