Changes `Rc<Vec<u8>>` to `Rc<[u8]>`. See: https://rust-lang.github.io/rust-clippy/master/index.html#rc_buffer
This commit is contained in:
Jay Oster 2020-12-10 19:28:54 -08:00 committed by GitHub
parent fb243b8973
commit d425cfee7f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 26 deletions

View file

@ -108,7 +108,7 @@ fn load_pcx(pcx: &[u8]) -> CachedSprite {
} }
} }
(width, height, Rc::new(result)) (width, height, Rc::from(result.as_ref()))
} }
#[cfg(test)] #[cfg(test)]
@ -138,6 +138,6 @@ mod tests {
assert_eq!(pixels.0, 10, "Width differs"); assert_eq!(pixels.0, 10, "Width differs");
assert_eq!(pixels.1, 8, "Height differs"); assert_eq!(pixels.1, 8, "Height differs");
assert_eq!(Rc::try_unwrap(pixels.2).unwrap(), expected, "Pixels differ"); assert_eq!(pixels.2.as_ref(), expected, "Pixels differ");
} }
} }

View file

@ -7,7 +7,7 @@ use crate::{Point, SCREEN_HEIGHT, SCREEN_WIDTH};
use line_drawing::Bresenham; use line_drawing::Bresenham;
// This is the type stored in the `Assets` hash map // This is the type stored in the `Assets` hash map
pub(crate) type CachedSprite = (usize, usize, Rc<Vec<u8>>); pub(crate) type CachedSprite = (usize, usize, Rc<[u8]>);
/// Frame identifier for managing animations. /// Frame identifier for managing animations.
#[derive(Debug, Eq, Hash, PartialEq)] #[derive(Debug, Eq, Hash, PartialEq)]
@ -60,7 +60,7 @@ pub(crate) struct Sprite {
pub(crate) struct SpriteRef { pub(crate) struct SpriteRef {
width: usize, width: usize,
height: usize, height: usize,
pixels: Rc<Vec<u8>>, pixels: Rc<[u8]>,
frame: Frame, frame: Frame,
duration: Duration, duration: Duration,
dt: Duration, dt: Duration,
@ -96,7 +96,7 @@ impl SpriteRef {
SpriteRef { SpriteRef {
width: *width, width: *width,
height: *height, height: *height,
pixels: pixels.clone(), pixels: Rc::clone(pixels),
frame, frame,
duration, duration,
dt: Duration::default(), dt: Duration::default(),
@ -108,32 +108,32 @@ impl SpriteRef {
let assets = assets.sprites(); let assets = assets.sprites();
let (pixels, frame) = match self.frame { let (pixels, frame) = match self.frame {
Blipjoy1 => (assets.get(&Blipjoy2).unwrap().2.clone(), Blipjoy2), Blipjoy1 => (Rc::clone(&assets.get(&Blipjoy2).unwrap().2), Blipjoy2),
Blipjoy2 => (assets.get(&Blipjoy1).unwrap().2.clone(), Blipjoy1), Blipjoy2 => (Rc::clone(&assets.get(&Blipjoy1).unwrap().2), Blipjoy1),
Ferris1 => (assets.get(&Ferris2).unwrap().2.clone(), Ferris2), Ferris1 => (Rc::clone(&assets.get(&Ferris2).unwrap().2), Ferris2),
Ferris2 => (assets.get(&Ferris1).unwrap().2.clone(), Ferris1), Ferris2 => (Rc::clone(&assets.get(&Ferris1).unwrap().2), Ferris1),
Cthulhu1 => (assets.get(&Cthulhu2).unwrap().2.clone(), Cthulhu2), Cthulhu1 => (Rc::clone(&assets.get(&Cthulhu2).unwrap().2), Cthulhu2),
Cthulhu2 => (assets.get(&Cthulhu1).unwrap().2.clone(), Cthulhu1), Cthulhu2 => (Rc::clone(&assets.get(&Cthulhu1).unwrap().2), Cthulhu1),
Player1 => (assets.get(&Player2).unwrap().2.clone(), Player2), Player1 => (Rc::clone(&assets.get(&Player2).unwrap().2), Player2),
Player2 => (assets.get(&Player1).unwrap().2.clone(), Player1), Player2 => (Rc::clone(&assets.get(&Player1).unwrap().2), Player1),
Bullet1 => (assets.get(&Bullet2).unwrap().2.clone(), Bullet2), Bullet1 => (Rc::clone(&assets.get(&Bullet2).unwrap().2), Bullet2),
Bullet2 => (assets.get(&Bullet3).unwrap().2.clone(), Bullet3), Bullet2 => (Rc::clone(&assets.get(&Bullet3).unwrap().2), Bullet3),
Bullet3 => (assets.get(&Bullet4).unwrap().2.clone(), Bullet4), Bullet3 => (Rc::clone(&assets.get(&Bullet4).unwrap().2), Bullet4),
Bullet4 => (assets.get(&Bullet5).unwrap().2.clone(), Bullet5), Bullet4 => (Rc::clone(&assets.get(&Bullet5).unwrap().2), Bullet5),
Bullet5 => (assets.get(&Bullet1).unwrap().2.clone(), Bullet1), Bullet5 => (Rc::clone(&assets.get(&Bullet1).unwrap().2), Bullet1),
Laser1 => (assets.get(&Laser2).unwrap().2.clone(), Laser2), Laser1 => (Rc::clone(&assets.get(&Laser2).unwrap().2), Laser2),
Laser2 => (assets.get(&Laser3).unwrap().2.clone(), Laser3), Laser2 => (Rc::clone(&assets.get(&Laser3).unwrap().2), Laser3),
Laser3 => (assets.get(&Laser4).unwrap().2.clone(), Laser4), Laser3 => (Rc::clone(&assets.get(&Laser4).unwrap().2), Laser4),
Laser4 => (assets.get(&Laser5).unwrap().2.clone(), Laser5), Laser4 => (Rc::clone(&assets.get(&Laser5).unwrap().2), Laser5),
Laser5 => (assets.get(&Laser6).unwrap().2.clone(), Laser6), Laser5 => (Rc::clone(&assets.get(&Laser6).unwrap().2), Laser6),
Laser6 => (assets.get(&Laser7).unwrap().2.clone(), Laser7), Laser6 => (Rc::clone(&assets.get(&Laser7).unwrap().2), Laser7),
Laser7 => (assets.get(&Laser8).unwrap().2.clone(), Laser8), Laser7 => (Rc::clone(&assets.get(&Laser8).unwrap().2), Laser8),
Laser8 => (assets.get(&Laser1).unwrap().2.clone(), Laser1), Laser8 => (Rc::clone(&assets.get(&Laser1).unwrap().2), Laser1),
_ => unreachable!(), _ => unreachable!(),
}; };