harfrust 0.13.3

A complete HarfBuzz shaping algorithm port to Rust.
Documentation
/* == Start of generated table == */
/*
 * The following table is generated by running:
 *
 *   ./gen-arabic-pua.py --rust ArabicPUASimplified.txt ArabicPUATraditional.txt
 *
 */

#![allow(clippy::unreadable_literal)]

#[allow(
    dead_code,
    non_upper_case_globals,
    clippy::allow_attributes_without_reason,
    missing_docs
)]
pub(crate) static _hb_arabic_pua_u8: [u8; 453] = [
    0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 6, 0, 7, 0, 0, 8, 0, 0, 0, 9, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
    20, 21, 0, 0, 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 30, 31,
    32, 33, 34, 35, 36, 37, 38, 39, 33, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    101, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 152, 186, 12, 13, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
    0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 14, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, 24, 25, 26, 27,
    28, 1, 1, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, 0, 43, 44, 0, 0, 45, 46, 0, 47, 48,
    49, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 52, 53, 54, 55, 56, 57, 0, 0, 0, 0, 0, 58, 59, 60, 61, 62,
    63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 65, 0, 0, 66, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
    82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
];
#[allow(
    dead_code,
    non_upper_case_globals,
    clippy::allow_attributes_without_reason,
    missing_docs
)]
pub(crate) static _hb_arabic_pua_u16: [u16; 713] = [
    0, 0, 0, 0, 0, 0, 0, 0, 61728, 61729, 61730, 0, 0, 61733, 0, 0, 61736, 61737, 61738, 61739,
    61790, 61741, 61742, 61743, 61872, 61873, 61874, 61875, 61876, 61877, 61878, 61879, 61880,
    61881, 61754, 61755, 0, 61757, 0, 61759, 0, 0, 0, 61787, 61788, 61789, 0, 0, 0, 0, 0, 61731, 0,
    0, 0, 0, 0, 0, 0, 61732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61734, 0, 0, 0, 0, 0, 0, 0, 61735, 0,
    0, 0, 0, 61740, 0, 0, 0, 0, 0, 0, 61755, 0, 0, 0, 61759, 0, 61869, 61765, 61763, 61883, 61767,
    61882, 61761, 61770, 61865, 61772, 61774, 61777, 61780, 61783, 61784, 61785, 61786, 61792,
    61794, 61796, 61798, 61800, 61801, 61802, 61806, 61810, 61696, 61696, 61696, 61696, 61696,
    61791, 61813, 61816, 61818, 61820, 61822, 61921, 61860, 61861, 61868, 61864, 61895, 61896,
    61899, 61892, 61893, 61898, 61897, 61894, 61696, 61696, 61696, 61696, 61696, 61696, 61696,
    61696, 61696, 61696, 61696, 61696, 0, 61744, 61745, 61746, 61747, 61748, 61749, 61750, 61751,
    61752, 61753, 0, 61790, 61790, 0, 0, 0, 0, 0, 0, 0, 61708, 61709, 61710, 61711, 61756, 61758,
    0, 0, 0, 0, 0, 0, 0, 61765, 61766, 61763, 61764, 61883, 61883, 61767, 61768, 61882, 61871,
    61870, 61870, 61761, 61762, 61770, 61770, 61769, 61769, 61865, 61866, 61772, 61772, 61771,
    61771, 61774, 61774, 61773, 61773, 61777, 61776, 61775, 61775, 61780, 61779, 61778, 61778,
    61783, 61782, 61781, 61781, 61784, 61784, 61785, 61785, 61786, 61786, 61792, 61792, 61794,
    61794, 61793, 61793, 61796, 61796, 61795, 61795, 61798, 61798, 61797, 61797, 61800, 61800,
    61799, 61799, 61801, 61801, 61801, 61801, 61802, 61802, 61802, 61802, 61806, 61805, 61803,
    61804, 61810, 61809, 61807, 61808, 61813, 61813, 61811, 61812, 61816, 61816, 61814, 61815,
    61818, 61818, 61817, 61817, 61820, 61820, 61819, 61819, 61822, 61822, 61821, 61821, 61921,
    61921, 61823, 61823, 61860, 61859, 61857, 61858, 61861, 61861, 61868, 61867, 61864, 61863,
    61862, 61862, 61888, 61889, 61886, 61887, 61890, 61891, 61885, 61884, 0, 0, 0, 0, 61952, 61952,
    61952, 61952, 61984, 61985, 61986, 0, 0, 61989, 0, 0, 61992, 61993, 61994, 61995, 62046, 61997,
    61998, 61999, 0, 0, 62010, 62011, 0, 62013, 0, 62015, 0, 0, 0, 62043, 0, 62045, 0, 0, 0, 0, 0,
    61987, 0, 0, 0, 61988, 0, 0, 0, 61990, 0, 0, 0, 61991, 61996, 0, 0, 0, 0, 0, 0, 62011, 0, 0, 0,
    62015, 0, 62165, 62021, 62019, 62170, 62023, 62169, 62017, 62028, 62161, 62032, 62036, 62040,
    62048, 62052, 62053, 62055, 62057, 62059, 62064, 62068, 62072, 62078, 62114, 62115, 62122,
    62126, 61952, 62047, 62130, 62134, 62138, 62142, 62146, 62150, 62154, 62155, 62164, 62160,
    62183, 62184, 62187, 62180, 62181, 62186, 62185, 62182, 61952, 61952, 61952, 61952, 0, 62000,
    62001, 62002, 62003, 62004, 62005, 62006, 62007, 62008, 62009, 0, 62046, 62046, 0, 0, 0, 61964,
    61965, 61966, 61967, 62012, 62014, 0, 0, 61954, 0, 61981, 0, 0, 0, 61955, 0, 61982, 0, 61956,
    0, 0, 0, 62111, 0, 0, 0, 0, 61970, 61971, 61972, 61957, 62101, 61980, 0, 0, 0, 0, 0, 61958, 0,
    61983, 0, 0, 0, 0, 0, 62191, 0, 62188, 62189, 62192, 0, 0, 0, 61973, 0, 0, 62098, 0, 0, 61974,
    0, 0, 62099, 0, 61975, 0, 0, 62100, 0, 0, 0, 62080, 62081, 62082, 62102, 0, 62083, 62084,
    62085, 62103, 0, 0, 0, 62106, 0, 62107, 0, 62108, 0, 0, 0, 61976, 0, 0, 0, 0, 62086, 62087,
    62088, 62109, 61978, 62089, 62090, 62091, 62110, 62093, 62094, 0, 62104, 0, 0, 0, 0, 62095,
    62096, 62097, 62105, 0, 0, 61977, 0, 0, 0, 0, 0, 62075, 62077, 61968, 0, 0, 0, 0, 62021, 62022,
    62019, 62020, 62170, 62171, 62023, 62024, 62169, 62168, 62166, 62167, 62017, 62018, 62028,
    62027, 62025, 62026, 62161, 62162, 62032, 62031, 62029, 62030, 62036, 62035, 62033, 62034,
    62040, 62039, 62037, 62038, 62048, 62044, 62041, 62042, 62052, 62051, 62049, 62050, 62053,
    62054, 62055, 62056, 62057, 62058, 62059, 62060, 62064, 62063, 62061, 62062, 62068, 62067,
    62065, 62066, 62072, 62071, 62069, 62070, 62078, 62076, 62073, 62074, 62114, 62113, 62079,
    62193, 62118, 62117, 62115, 62116, 62122, 62121, 62119, 62120, 62126, 62125, 62123, 62124,
    62130, 62129, 62127, 62128, 62134, 62133, 62131, 62132, 62138, 62137, 62135, 62136, 62142,
    62141, 62139, 62140, 62146, 62145, 62143, 62144, 62150, 62149, 62147, 62148, 62154, 62153,
    62151, 62152, 62155, 62156, 62164, 62163, 62160, 62159, 62157, 62158, 62176, 62177, 62174,
    62175, 62178, 62179, 62172, 62173, 0, 0, 0,
];

#[allow(
    dead_code,
    unused_parens,
    trivial_numeric_casts,
    clippy::allow_attributes_without_reason,
    clippy::unseparated_literal_suffix,
    clippy::double_parens,
    clippy::unnecessary_cast
)]
#[inline(always)]
fn _hb_arabic_pua_b4(a: &[u8], i: usize) -> u8 {
    (a[i >> 1] >> ((i & 1) << 2)) & 15
}
#[allow(
    dead_code,
    unused_parens,
    trivial_numeric_casts,
    clippy::allow_attributes_without_reason,
    clippy::unseparated_literal_suffix,
    clippy::double_parens,
    clippy::unnecessary_cast,
    missing_docs
)]
#[inline]
pub(crate) fn _hb_arabic_pua_simp_map(u: usize) -> u16 {
    /* packtab: [2^2,2^4,2^4,2^3] */
    if u < 65277usize {
        (_hb_arabic_pua_u16[(((_hb_arabic_pua_u8[31usize
            + ((((_hb_arabic_pua_b4(
                &_hb_arabic_pua_u8,
                ((((13835058055282164225u64
                    >> ((((((((u) >> 3) >> 4) >> 4) as usize) as usize) as usize) << 1))
                    & 3) as usize)
                    << 4) as usize
                    + ((((u) >> 3) >> 4) & 15) as usize,
            )) as usize)
                << 4) as usize
                + (((u) >> 3) & 15) as usize) as usize]) as usize)
            << 3) as usize
            + ((u) & 7) as usize]) as u16
    } else {
        0
    }
}
#[allow(
    dead_code,
    unused_parens,
    trivial_numeric_casts,
    clippy::allow_attributes_without_reason,
    clippy::unseparated_literal_suffix,
    clippy::double_parens,
    clippy::unnecessary_cast,
    missing_docs
)]
#[inline]
pub(crate) fn _hb_arabic_pua_trad_map(u: usize) -> u16 {
    /* packtab: [2^4,2^4,2^4,2^2] */
    if u < 65277usize {
        (_hb_arabic_pua_u16[317usize
            + ((((_hb_arabic_pua_u8[197usize
                + ((((_hb_arabic_pua_b4(
                    &_hb_arabic_pua_u8[159usize..],
                    (((_hb_arabic_pua_b4(
                        &_hb_arabic_pua_u8[127usize..],
                        (((((u) >> 2) >> 4) >> 4) as usize) as usize,
                    )) as usize)
                        << 4) as usize
                        + ((((u) >> 2) >> 4) & 15) as usize,
                )) as usize)
                    << 4) as usize
                    + (((u) >> 2) & 15) as usize) as usize]) as usize)
                << 2) as usize
                + ((u) & 3) as usize) as usize]) as u16
    } else {
        0
    }
}

/* == End of generated table == */