pixel_engine 0.3.1

A recreation of the olcPixelEngine by javidx9 written in Rust
Documentation
extern crate pixel_engine as engine;
use std::collections::HashSet;

use engine::traits::*;
fn main() {
    let game = engine::EngineWrapper::new("Mouse".to_owned(), (50, 50, 10));
    let mut clicks: HashSet<(u32, u32)> = HashSet::new();
    let mut old_pos = (0, 0);
    game.run(move |game: &mut engine::Engine| {
        if game.get_key(engine::inputs::Keycodes::Escape).any() {
            return Ok(false);
        }
        game.screen.clear([0, 0, 0].into());
        game.screen
            .draw_line((25, 0), (25, 49), engine::Color::GREEN);
        game.screen
            .draw_line((0, 25), (49, 25), engine::Color::GREEN);
        let mouse_pos = game.get_mouse_location();
        game.screen
            .draw(mouse_pos.0, mouse_pos.1, [255, 0, 0].into());
        if game.get_mouse_btn(engine::inputs::MouseBtn::Left).any() {
            if old_pos.0 != mouse_pos.0 || old_pos.1 != mouse_pos.1 {
                if clicks.contains(&mouse_pos) {
                    clicks.remove(&mouse_pos);
                } else {
                    clicks.insert(mouse_pos);
                }
            }
            old_pos = mouse_pos;
        }
        for (x, y) in &clicks {
            game.screen.draw(*x, *y, [0, 0, 255].into());
        }
        Ok(true)
    });
}