From 2d8e75acd3010afb7110ef4a8d177439f350e670 Mon Sep 17 00:00:00 2001 From: Yash Karandikar Date: Sun, 6 Mar 2022 14:23:10 -0600 Subject: [PATCH] Use FnMut instead of Fn --- src/lib.rs | 16 ++++++++++++++-- src/main.rs | 4 +++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 74c9a35..48b6bf2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,13 +3,25 @@ use std::cell::Cell; use sdl2::{ render::Canvas, video::{Window, WindowBuildError}, - EventPump, IntegerOrSdlError, + IntegerOrSdlError, }; pub use sdl2::event::Event; pub use sdl2::keyboard::Keycode; pub use sdl2::pixels::Color; +#[macro_export] +macro_rules! cloned { + ($thing:ident => $e:expr) => { + let $thing = $thing.clone(); + $e + }; + ($($thing:ident),* => $e:expr) => { + $( let $thing = $thing.clone(); )* + $e + } +} + #[derive(Debug)] pub struct CatboxError(String); @@ -50,7 +62,7 @@ impl Game { } } - pub fn run, Vec)>(&self, func: F) -> Result<()> { + pub fn run, Vec)>(&self, mut func: F) -> Result<()> { let sdl_context = sdl2::init()?; let video_subsystem = sdl_context.video()?; diff --git a/src/main.rs b/src/main.rs index e24187c..2ede3ca 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,8 +3,10 @@ use catbox::{Event, Game, Keycode}; fn main() { let game = Game::new("catbox demo", 1000, 800); + let mut i = 0; game.run(|canvas, event_pump| { - canvas.set_draw_color(catbox::Color::RGB(0, 59, 111)); + i = (i + 1) % 255; + canvas.set_draw_color(catbox::Color::RGB(i, 64, 255)); canvas.clear(); for event in event_pump { match event {