1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use sdl2::ttf::{ Font, Sdl2TtfContext };
use managers::resource_manager::{ ResourceLoader, ResourceManager };
pub type FontManager<'l> = ResourceManager<'l, FontDetails, Font<'l, 'static>, Sdl2TtfContext>;
#[derive(PartialEq, Eq, Hash)]
pub struct FontDetails {
pub path: String,
pub size: u16,
}
impl<'a> From<&'a FontDetails> for FontDetails {
fn from(details: &'a FontDetails) -> FontDetails {
FontDetails {
path: details.path.clone(),
size: details.size,
}
}
}
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)
}
}