1
2
3
4
5
6
7
8
9
10
11
12
13
use sdl2::ttf::{ Font, Sdl2TtfContext };
use common::FontDetails;
use managers::resource_manager::{ ResourceLoader, ResourceManager };

pub type FontManager<'l> = ResourceManager<'l, FontDetails, Font<'l, 'static>, Sdl2TtfContext>;

// Font Context knows how to load Fonts
impl<'l> ResourceLoader<'l, Font<'l, 'static>> for Sdl2TtfContext {
    type Args = FontDetails;
    fn load(&'l self, details: &FontDetails) -> Result<Font<'l, 'static>, String> {
        self.load_font(&details.path, details.size)
    }
}