rust_graphics_window 0.1.2

A simple, small and minimal windowing library
extern crate rust_graphics_log as log;
extern crate rust_graphics_window as window;

use log::{log_f, log_i, result_f};
use std::sync::{Arc, RwLock};

struct Listener {
    pub running: bool,
}

impl window::event::Listener for Listener {
    fn on_event(&mut self, event: &window::event::Event) -> bool {
        match event.get_data() {
            &window::event::Data::Quit => self.running = false,
            _e @ _ => {
                #[cfg(feature = "debug_derive")]
                log_i!("{:?}", _e);
            }
        }
        return false;
    }
}

fn main() {
    let w = window::Window::new();
    let listener = Arc::new(RwLock::new(Listener { running: true }));
    let l: Arc<RwLock<dyn window::event::Listener>> = listener.clone();
    w.get_engine().add(0, Arc::downgrade(&l));
    while { result_f!(listener.read()).running } {
        w.fetch_events();
    }
    log_i!("Program ended.");
}