psf 0.2.0

Allow to read psf fonts, including (optionally) zipped ones
Documentation
use psf;

fn is_empty(data: &psf::Glyph) -> bool {
    for x in 0..data.width() {
        for y in 0..data.height() {
            assert!(data.get(x, y).is_some());
            if data.get(x, y).unwrap() {
                return false;
            }
        }
    }
    true
}

#[cfg(unix)]
#[test]
fn read_consolefonts() {
    use std::fs::read_dir;
    use std::path::Path;

    let consolefonts_dir = Path::new("/usr/share/consolefonts");
    if !consolefonts_dir.exists() || !consolefonts_dir.is_dir() {
        return;
    }
    for d in read_dir(&consolefonts_dir).unwrap() {
        if let Ok(entry) = d {
            #[cfg(not(feature = "unzip"))]
            if entry.path().extension().unwrap() == "gz" {
                continue;
            }
            let path = consolefonts_dir.join(&entry.path());
            println!("processed path: {:?}", &path);
            let oc;
            {
                let font = psf::Font::new(&path);
                assert!(font.is_ok());
                let font = font.unwrap();
                let c = font.get_char('X');
                assert!(c.is_some());
                let c = c.unwrap();
                assert!(c.width() > 0);
                assert!(c.height() > 0);
                assert!(!is_empty(&c));
                oc = font.get_char_owned('X');
            }
            assert!(oc.is_some());
            let oc = oc.unwrap();
            assert!(!is_empty(&oc));
        }
    }
}