X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fsprites.rs;h=70de0c0a83ff06928d8c3b579eaf93c3d86ae92f;hb=d59c7f04922541543adb533ab07a26a781341777;hp=82dd6dc193f5564774c22c8a1caf30ab259f7849;hpb=cdf8f998d161abafcff3cd8503c9ec81e9c372f3;p=kaka%2Frust-sdl-test.git diff --git a/src/sprites.rs b/src/sprites.rs index 82dd6dc..70de0c0 100644 --- a/src/sprites.rs +++ b/src/sprites.rs @@ -5,24 +5,29 @@ use sdl2::render::Texture; use sdl2::render::TextureCreator; use sdl2::video::WindowContext; -pub struct SpriteManager<'canvas> { - texture_creator: &'canvas TextureCreator, // can't make the lifetimes work when this is owned instead of borrowed - textures: HashMap<&'static str, Texture<'canvas>>, +pub struct SpriteManager { + texture_creator: TextureCreator, // can't make the lifetimes work when this is owned instead of borrowed + textures: HashMap, } -impl<'canvas> SpriteManager<'canvas> { - pub fn new(texture_creator: &'canvas TextureCreator) -> SpriteManager<'canvas> { +impl SpriteManager { + pub fn new(texture_creator: TextureCreator) -> SpriteManager { SpriteManager { texture_creator, textures: HashMap::new(), } } - pub fn load(&mut self, name: &'static str, file: &str) { - self.textures.insert(name, self.texture_creator.load_texture(file).unwrap()); + pub fn load(&mut self, name: &str, file: &str) { + self.textures.insert( + name.to_string(), + self.texture_creator.load_texture(file).unwrap(), + ); } pub fn get(&self, name: &str) -> &Texture { - self.textures.get(name).expect(format!("The sprite '{}' was not found", name).as_str()) + self.textures + .get(name) + .unwrap_or_else(|| panic!("The sprite '{}' was not found", name)) } }