sext 0.1.1

the real microsoft text rendering backend! powered by fontdue and my eternal suffering
Documentation
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct TextColour {
    pub r: u8,
    pub g: u8,
    pub b: u8,
    pub a: u8,
}

impl TextColour {
    pub fn new(r: u8, g: u8, b: u8, a: u8) -> Self {
        Self { r, g, b, a }
    }
    pub fn new_rgb(r: u8, g: u8, b: u8) -> Self {
        Self { r, g, b, a: 255 }
    }
    pub fn from_hex(hex: &str) -> Self {
        let mut hex = hex;
        if hex.starts_with('#') {
            hex = &hex[1..];
        }
        let r = u8::from_str_radix(&hex[0..2], 16).unwrap();
        let g = u8::from_str_radix(&hex[2..4], 16).unwrap();
        let b = u8::from_str_radix(&hex[4..6], 16).unwrap();
        Self { r, g, b, a: 255 }
    }
    pub fn from_hex_with_alpha(hex: &str) -> Self {
        let mut hex = hex;
        if hex.starts_with('#') {
            hex = &hex[1..];
        }
        let r = u8::from_str_radix(&hex[0..2], 16).unwrap();
        let g = u8::from_str_radix(&hex[2..4], 16).unwrap();
        let b = u8::from_str_radix(&hex[4..6], 16).unwrap();
        let a = u8::from_str_radix(&hex[6..8], 16).unwrap();
        Self { r, g, b, a }
    }
}