chiro 0.1.3

A curses-style terminal view that runs inside a pixel buffer (Rewrite of chiropterm)
Documentation
use std::collections::{BTreeMap};
use lazy_static::lazy_static;

const UTF8_DATA: &[u8] = include_bytes!("cp437.bin");

lazy_static! {
    static ref TO_CP437: BTreeMap<char, u8> = {
        let mut m = BTreeMap::new();
        for (i, c) in std::str::from_utf8(UTF8_DATA).unwrap().chars().enumerate() {
            let result = m.insert(c, i as u8);
            assert!(result.is_none());
        }
        assert_eq!(m.len(), 256);
        m
    };
}

pub(crate) fn encode_lossy(c: char) -> u8 {
    if let Some(x) = TO_CP437.get(&c) { 
        return *x;
    }
    return b'?'
}