fn do_ligatures()

in src/metrics/arabic.rs [108:123]


fn do_ligatures(curr: u32, front: Option<char>, behind: Option<char>) -> u32 {
    let front = front.map(|x| x as u32).unwrap_or(0);
    let behind = behind.map(|x| x as u32).unwrap_or(0);

    let curr_index = (curr - 0x621) as usize;
    if is_in_front_set(&front) && is_in_behind_set(&behind) {
        // medi
        ARABIC_POSITION[curr_index][MEDI]
    } else if is_in_front_set(&front) && !is_in_behind_set(&behind) {
        ARABIC_POSITION[curr_index][FINA]
    } else if !is_in_front_set(&front) && is_in_behind_set(&behind) {
        ARABIC_POSITION[curr_index][INIT]
    } else {
        ARABIC_POSITION[curr_index][ISO]
    }
}