braillify 2.0.1

Rust 기반 크로스플랫폼 한국어 점역 라이브러리
Documentation
use phf::phf_map;

use crate::unicode::decode_unicode;

pub static SHORTCUT_MAP: phf::Map<&'static str, &'static [u8]> = phf_map! {
    "그래서" => &[decode_unicode(''), decode_unicode('')],
    "그러나" => &[decode_unicode(''), decode_unicode('')],
    "그러면" => &[decode_unicode(''), decode_unicode('')],
    "그러므로" => &[decode_unicode(''), decode_unicode('')],
    "그런데" => &[decode_unicode(''), decode_unicode('')],
    "그리고" => &[decode_unicode(''), decode_unicode('')],
    "그리하여" => &[decode_unicode(''), decode_unicode('')],
};

pub fn split_word_shortcut(text: &str) -> Option<(&'static str, &'static [u8], String)> {
    for (key, value) in SHORTCUT_MAP.entries() {
        if let Some(rest) = text.strip_prefix(key) {
            return Some((key, value, rest.to_string()));
        }
    }
    None
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    pub fn test_encode_word_shortcut() {
        assert_eq!(
            split_word_shortcut("그래서").unwrap(),
            (
                "그래서",
                &[decode_unicode(''), decode_unicode('')][..],
                "".to_string()
            )
        );
    }
}