#![allow(non_camel_case_types)]
#[cfg(any(target_os = "android", all(unix, not(target_os = "macos"))))]
extern crate freetype;
extern crate libc;
#[cfg(any(target_os = "android", all(unix, not(target_os = "macos"))))]
extern "C" {
pub fn hb_ft_font_create_referenced(face: freetype::freetype::FT_Face) -> *mut hb_font_t;
}
#[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
impl <T> __BindgenUnionField<T> {
#[inline]
pub fn new() -> Self { __BindgenUnionField(::std::marker::PhantomData) }
#[inline]
pub unsafe fn as_ref(&self) -> &T { ::std::mem::transmute(self) }
#[inline]
pub unsafe fn as_mut(&mut self) -> &mut T { ::std::mem::transmute(self) }
}
impl <T> ::std::default::Default for __BindgenUnionField<T> {
#[inline]
fn default() -> Self { Self::new() }
}
impl <T> ::std::clone::Clone for __BindgenUnionField<T> {
#[inline]
fn clone(&self) -> Self { Self::new() }
}
impl <T> ::std::marker::Copy for __BindgenUnionField<T> { }
impl <T> ::std::fmt::Debug for __BindgenUnionField<T> {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
fmt.write_str("__BindgenUnionField")
}
}
pub const _STDINT_H: ::libc::c_uint = 1;
pub const _FEATURES_H: ::libc::c_uint = 1;
pub const _DEFAULT_SOURCE: ::libc::c_uint = 1;
pub const __USE_ISOC11: ::libc::c_uint = 1;
pub const __USE_ISOC99: ::libc::c_uint = 1;
pub const __USE_ISOC95: ::libc::c_uint = 1;
pub const __USE_POSIX_IMPLICITLY: ::libc::c_uint = 1;
pub const _POSIX_SOURCE: ::libc::c_uint = 1;
pub const _POSIX_C_SOURCE: ::libc::c_uint = 200809;
pub const __USE_POSIX: ::libc::c_uint = 1;
pub const __USE_POSIX2: ::libc::c_uint = 1;
pub const __USE_POSIX199309: ::libc::c_uint = 1;
pub const __USE_POSIX199506: ::libc::c_uint = 1;
pub const __USE_XOPEN2K: ::libc::c_uint = 1;
pub const __USE_XOPEN2K8: ::libc::c_uint = 1;
pub const _ATFILE_SOURCE: ::libc::c_uint = 1;
pub const __USE_MISC: ::libc::c_uint = 1;
pub const __USE_ATFILE: ::libc::c_uint = 1;
pub const __USE_FORTIFY_LEVEL: ::libc::c_uint = 0;
pub const _STDC_PREDEF_H: ::libc::c_uint = 1;
pub const __STDC_IEC_559__: ::libc::c_uint = 1;
pub const __STDC_IEC_559_COMPLEX__: ::libc::c_uint = 1;
pub const __STDC_ISO_10646__: ::libc::c_uint = 201605;
pub const __STDC_NO_THREADS__: ::libc::c_uint = 1;
pub const __GNU_LIBRARY__: ::libc::c_uint = 6;
pub const __GLIBC__: ::libc::c_uint = 2;
pub const __GLIBC_MINOR__: ::libc::c_uint = 24;
pub const _SYS_CDEFS_H: ::libc::c_uint = 1;
pub const __WORDSIZE: ::libc::c_uint = 64;
pub const __WORDSIZE_TIME64_COMPAT32: ::libc::c_uint = 1;
pub const __SYSCALL_WORDSIZE: ::libc::c_uint = 64;
pub const _BITS_WCHAR_H: ::libc::c_uint = 1;
pub const INT8_MIN: ::libc::c_int = -128;
pub const INT16_MIN: ::libc::c_int = -32768;
pub const INT32_MIN: ::libc::c_int = -2147483648;
pub const INT8_MAX: ::libc::c_uint = 127;
pub const INT16_MAX: ::libc::c_uint = 32767;
pub const INT32_MAX: ::libc::c_uint = 2147483647;
pub const UINT8_MAX: ::libc::c_uint = 255;
pub const UINT16_MAX: ::libc::c_uint = 65535;
pub const UINT32_MAX: ::libc::c_uint = 4294967295;
pub const INT_LEAST8_MIN: ::libc::c_int = -128;
pub const INT_LEAST16_MIN: ::libc::c_int = -32768;
pub const INT_LEAST32_MIN: ::libc::c_int = -2147483648;
pub const INT_LEAST8_MAX: ::libc::c_uint = 127;
pub const INT_LEAST16_MAX: ::libc::c_uint = 32767;
pub const INT_LEAST32_MAX: ::libc::c_uint = 2147483647;
pub const UINT_LEAST8_MAX: ::libc::c_uint = 255;
pub const UINT_LEAST16_MAX: ::libc::c_uint = 65535;
pub const UINT_LEAST32_MAX: ::libc::c_uint = 4294967295;
pub const INT_FAST8_MIN: ::libc::c_int = -128;
pub const INT_FAST16_MIN: ::libc::c_longlong = -9223372036854775808;
pub const INT_FAST32_MIN: ::libc::c_longlong = -9223372036854775808;
pub const INT_FAST8_MAX: ::libc::c_uint = 127;
pub const INT_FAST16_MAX: ::libc::c_ulonglong = 9223372036854775807;
pub const INT_FAST32_MAX: ::libc::c_ulonglong = 9223372036854775807;
pub const UINT_FAST8_MAX: ::libc::c_uint = 255;
pub const UINT_FAST16_MAX: ::libc::c_int = -1;
pub const UINT_FAST32_MAX: ::libc::c_int = -1;
pub const INTPTR_MIN: ::libc::c_longlong = -9223372036854775808;
pub const INTPTR_MAX: ::libc::c_ulonglong = 9223372036854775807;
pub const UINTPTR_MAX: ::libc::c_int = -1;
pub const PTRDIFF_MIN: ::libc::c_longlong = -9223372036854775808;
pub const PTRDIFF_MAX: ::libc::c_ulonglong = 9223372036854775807;
pub const SIG_ATOMIC_MIN: ::libc::c_int = -2147483648;
pub const SIG_ATOMIC_MAX: ::libc::c_uint = 2147483647;
pub const SIZE_MAX: ::libc::c_int = -1;
pub const WINT_MIN: ::libc::c_uint = 0;
pub const WINT_MAX: ::libc::c_uint = 4294967295;
pub const HB_UNICODE_MAX_DECOMPOSITION_LEN: ::libc::c_uint = 19;
pub const HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: ::libc::c_uint = 65533;
pub const HB_VERSION_MAJOR: ::libc::c_uint = 1;
pub const HB_VERSION_MINOR: ::libc::c_uint = 4;
pub const HB_VERSION_MICRO: ::libc::c_uint = 8;
pub const HB_VERSION_STRING: &'static [u8; 6usize] = b"1.4.8\x00";
pub type int_least8_t = ::libc::c_schar;
pub type int_least16_t = ::libc::c_short;
pub type int_least32_t = ::libc::c_int;
pub type int_least64_t = ::libc::c_long;
pub type uint_least8_t = ::libc::c_uchar;
pub type uint_least16_t = ::libc::c_ushort;
pub type uint_least32_t = ::libc::c_uint;
pub type uint_least64_t = ::libc::c_ulong;
pub type int_fast8_t = ::libc::c_schar;
pub type int_fast16_t = ::libc::c_long;
pub type int_fast32_t = ::libc::c_long;
pub type int_fast64_t = ::libc::c_long;
pub type uint_fast8_t = ::libc::c_uchar;
pub type uint_fast16_t = ::libc::c_ulong;
pub type uint_fast32_t = ::libc::c_ulong;
pub type uint_fast64_t = ::libc::c_ulong;
pub type intmax_t = ::libc::c_long;
pub type uintmax_t = ::libc::c_ulong;
pub type hb_bool_t = ::libc::c_int;
pub type hb_codepoint_t = u32;
pub type hb_position_t = i32;
pub type hb_mask_t = u32;
#[repr(C)]
#[derive(Debug, Copy)]
pub struct _hb_var_int_t {
pub u32: __BindgenUnionField<u32>,
pub i32: __BindgenUnionField<i32>,
pub u16: __BindgenUnionField<[u16; 2usize]>,
pub i16: __BindgenUnionField<[i16; 2usize]>,
pub u8: __BindgenUnionField<[u8; 4usize]>,
pub i8: __BindgenUnionField<[i8; 4usize]>,
pub bindgen_union_field: u32,
}
#[test]
fn bindgen_test_layout__hb_var_int_t() {
assert_eq!(::std::mem::size_of::<_hb_var_int_t>() , 4usize , concat ! (
"Size of: " , stringify ! ( _hb_var_int_t ) ));
assert_eq! (::std::mem::align_of::<_hb_var_int_t>() , 4usize , concat ! (
"Alignment of " , stringify ! ( _hb_var_int_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . u32 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( u32 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . i32 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( i32 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . u16 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( u16 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . i16 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( i16 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . u8 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( u8 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _hb_var_int_t ) ) . i8 as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _hb_var_int_t ) , "::"
, stringify ! ( i8 ) ));
}
impl Clone for _hb_var_int_t {
fn clone(&self) -> Self { *self }
}
pub type hb_var_int_t = _hb_var_int_t;
pub type hb_tag_t = u32;
extern "C" {
pub fn hb_tag_from_string(str: *const ::libc::c_char, len: ::libc::c_int)
-> hb_tag_t;
}
extern "C" {
pub fn hb_tag_to_string(tag: hb_tag_t, buf: *mut ::libc::c_char);
}
pub const HB_DIRECTION_INVALID: hb_direction_t = 0;
pub const HB_DIRECTION_LTR: hb_direction_t = 4;
pub const HB_DIRECTION_RTL: hb_direction_t = 5;
pub const HB_DIRECTION_TTB: hb_direction_t = 6;
pub const HB_DIRECTION_BTT: hb_direction_t = 7;
pub type hb_direction_t = ::libc::c_uint;
extern "C" {
pub fn hb_direction_from_string(str: *const ::libc::c_char,
len: ::libc::c_int) -> hb_direction_t;
}
extern "C" {
pub fn hb_direction_to_string(direction: hb_direction_t)
-> *const ::libc::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_language_impl_t {
_unused: [u8; 0],
}
pub type hb_language_t = *const hb_language_impl_t;
extern "C" {
pub fn hb_language_from_string(str: *const ::libc::c_char,
len: ::libc::c_int) -> hb_language_t;
}
extern "C" {
pub fn hb_language_to_string(language: hb_language_t)
-> *const ::libc::c_char;
}
extern "C" {
pub fn hb_language_get_default() -> hb_language_t;
}
pub const HB_SCRIPT_COMMON: hb_script_t = 1517910393;
pub const HB_SCRIPT_INHERITED: hb_script_t = 1516858984;
pub const HB_SCRIPT_UNKNOWN: hb_script_t = 1517976186;
pub const HB_SCRIPT_ARABIC: hb_script_t = 1098015074;
pub const HB_SCRIPT_ARMENIAN: hb_script_t = 1098018158;
pub const HB_SCRIPT_BENGALI: hb_script_t = 1113943655;
pub const HB_SCRIPT_CYRILLIC: hb_script_t = 1132032620;
pub const HB_SCRIPT_DEVANAGARI: hb_script_t = 1147500129;
pub const HB_SCRIPT_GEORGIAN: hb_script_t = 1197830002;
pub const HB_SCRIPT_GREEK: hb_script_t = 1198679403;
pub const HB_SCRIPT_GUJARATI: hb_script_t = 1198877298;
pub const HB_SCRIPT_GURMUKHI: hb_script_t = 1198879349;
pub const HB_SCRIPT_HANGUL: hb_script_t = 1214344807;
pub const HB_SCRIPT_HAN: hb_script_t = 1214344809;
pub const HB_SCRIPT_HEBREW: hb_script_t = 1214603890;
pub const HB_SCRIPT_HIRAGANA: hb_script_t = 1214870113;
pub const HB_SCRIPT_KANNADA: hb_script_t = 1265525857;
pub const HB_SCRIPT_KATAKANA: hb_script_t = 1264676449;
pub const HB_SCRIPT_LAO: hb_script_t = 1281453935;
pub const HB_SCRIPT_LATIN: hb_script_t = 1281455214;
pub const HB_SCRIPT_MALAYALAM: hb_script_t = 1298954605;
pub const HB_SCRIPT_ORIYA: hb_script_t = 1332902241;
pub const HB_SCRIPT_TAMIL: hb_script_t = 1415671148;
pub const HB_SCRIPT_TELUGU: hb_script_t = 1415933045;
pub const HB_SCRIPT_THAI: hb_script_t = 1416126825;
pub const HB_SCRIPT_TIBETAN: hb_script_t = 1416192628;
pub const HB_SCRIPT_BOPOMOFO: hb_script_t = 1114599535;
pub const HB_SCRIPT_BRAILLE: hb_script_t = 1114792297;
pub const HB_SCRIPT_CANADIAN_SYLLABICS: hb_script_t = 1130458739;
pub const HB_SCRIPT_CHEROKEE: hb_script_t = 1130915186;
pub const HB_SCRIPT_ETHIOPIC: hb_script_t = 1165256809;
pub const HB_SCRIPT_KHMER: hb_script_t = 1265134962;
pub const HB_SCRIPT_MONGOLIAN: hb_script_t = 1299148391;
pub const HB_SCRIPT_MYANMAR: hb_script_t = 1299803506;
pub const HB_SCRIPT_OGHAM: hb_script_t = 1332175213;
pub const HB_SCRIPT_RUNIC: hb_script_t = 1383427698;
pub const HB_SCRIPT_SINHALA: hb_script_t = 1399418472;
pub const HB_SCRIPT_SYRIAC: hb_script_t = 1400468067;
pub const HB_SCRIPT_THAANA: hb_script_t = 1416126817;
pub const HB_SCRIPT_YI: hb_script_t = 1500080489;
pub const HB_SCRIPT_DESERET: hb_script_t = 1148416628;
pub const HB_SCRIPT_GOTHIC: hb_script_t = 1198486632;
pub const HB_SCRIPT_OLD_ITALIC: hb_script_t = 1232363884;
pub const HB_SCRIPT_BUHID: hb_script_t = 1114990692;
pub const HB_SCRIPT_HANUNOO: hb_script_t = 1214344815;
pub const HB_SCRIPT_TAGALOG: hb_script_t = 1416064103;
pub const HB_SCRIPT_TAGBANWA: hb_script_t = 1415669602;
pub const HB_SCRIPT_CYPRIOT: hb_script_t = 1131442804;
pub const HB_SCRIPT_LIMBU: hb_script_t = 1281977698;
pub const HB_SCRIPT_LINEAR_B: hb_script_t = 1281977954;
pub const HB_SCRIPT_OSMANYA: hb_script_t = 1332964705;
pub const HB_SCRIPT_SHAVIAN: hb_script_t = 1399349623;
pub const HB_SCRIPT_TAI_LE: hb_script_t = 1415670885;
pub const HB_SCRIPT_UGARITIC: hb_script_t = 1432838514;
pub const HB_SCRIPT_BUGINESE: hb_script_t = 1114990441;
pub const HB_SCRIPT_COPTIC: hb_script_t = 1131376756;
pub const HB_SCRIPT_GLAGOLITIC: hb_script_t = 1198285159;
pub const HB_SCRIPT_KHAROSHTHI: hb_script_t = 1265131890;
pub const HB_SCRIPT_NEW_TAI_LUE: hb_script_t = 1415670901;
pub const HB_SCRIPT_OLD_PERSIAN: hb_script_t = 1483761007;
pub const HB_SCRIPT_SYLOTI_NAGRI: hb_script_t = 1400466543;
pub const HB_SCRIPT_TIFINAGH: hb_script_t = 1415999079;
pub const HB_SCRIPT_BALINESE: hb_script_t = 1113681001;
pub const HB_SCRIPT_CUNEIFORM: hb_script_t = 1483961720;
pub const HB_SCRIPT_NKO: hb_script_t = 1315663727;
pub const HB_SCRIPT_PHAGS_PA: hb_script_t = 1349017959;
pub const HB_SCRIPT_PHOENICIAN: hb_script_t = 1349021304;
pub const HB_SCRIPT_CARIAN: hb_script_t = 1130459753;
pub const HB_SCRIPT_CHAM: hb_script_t = 1130914157;
pub const HB_SCRIPT_KAYAH_LI: hb_script_t = 1264675945;
pub const HB_SCRIPT_LEPCHA: hb_script_t = 1281716323;
pub const HB_SCRIPT_LYCIAN: hb_script_t = 1283023721;
pub const HB_SCRIPT_LYDIAN: hb_script_t = 1283023977;
pub const HB_SCRIPT_OL_CHIKI: hb_script_t = 1332503403;
pub const HB_SCRIPT_REJANG: hb_script_t = 1382706791;
pub const HB_SCRIPT_SAURASHTRA: hb_script_t = 1398895986;
pub const HB_SCRIPT_SUNDANESE: hb_script_t = 1400204900;
pub const HB_SCRIPT_VAI: hb_script_t = 1449224553;
pub const HB_SCRIPT_AVESTAN: hb_script_t = 1098281844;
pub const HB_SCRIPT_BAMUM: hb_script_t = 1113681269;
pub const HB_SCRIPT_EGYPTIAN_HIEROGLYPHS: hb_script_t = 1164409200;
pub const HB_SCRIPT_IMPERIAL_ARAMAIC: hb_script_t = 1098018153;
pub const HB_SCRIPT_INSCRIPTIONAL_PAHLAVI: hb_script_t = 1349020777;
pub const HB_SCRIPT_INSCRIPTIONAL_PARTHIAN: hb_script_t = 1349678185;
pub const HB_SCRIPT_JAVANESE: hb_script_t = 1247901281;
pub const HB_SCRIPT_KAITHI: hb_script_t = 1265920105;
pub const HB_SCRIPT_LISU: hb_script_t = 1281979253;
pub const HB_SCRIPT_MEETEI_MAYEK: hb_script_t = 1299473769;
pub const HB_SCRIPT_OLD_SOUTH_ARABIAN: hb_script_t = 1398895202;
pub const HB_SCRIPT_OLD_TURKIC: hb_script_t = 1332898664;
pub const HB_SCRIPT_SAMARITAN: hb_script_t = 1398893938;
pub const HB_SCRIPT_TAI_THAM: hb_script_t = 1281453665;
pub const HB_SCRIPT_TAI_VIET: hb_script_t = 1415673460;
pub const HB_SCRIPT_BATAK: hb_script_t = 1113683051;
pub const HB_SCRIPT_BRAHMI: hb_script_t = 1114792296;
pub const HB_SCRIPT_MANDAIC: hb_script_t = 1298230884;
pub const HB_SCRIPT_CHAKMA: hb_script_t = 1130457965;
pub const HB_SCRIPT_MEROITIC_CURSIVE: hb_script_t = 1298494051;
pub const HB_SCRIPT_MEROITIC_HIEROGLYPHS: hb_script_t = 1298494063;
pub const HB_SCRIPT_MIAO: hb_script_t = 1349284452;
pub const HB_SCRIPT_SHARADA: hb_script_t = 1399353956;
pub const HB_SCRIPT_SORA_SOMPENG: hb_script_t = 1399812705;
pub const HB_SCRIPT_TAKRI: hb_script_t = 1415670642;
pub const HB_SCRIPT_BASSA_VAH: hb_script_t = 1113682803;
pub const HB_SCRIPT_CAUCASIAN_ALBANIAN: hb_script_t = 1097295970;
pub const HB_SCRIPT_DUPLOYAN: hb_script_t = 1148547180;
pub const HB_SCRIPT_ELBASAN: hb_script_t = 1164730977;
pub const HB_SCRIPT_GRANTHA: hb_script_t = 1198678382;
pub const HB_SCRIPT_KHOJKI: hb_script_t = 1265135466;
pub const HB_SCRIPT_KHUDAWADI: hb_script_t = 1399418468;
pub const HB_SCRIPT_LINEAR_A: hb_script_t = 1281977953;
pub const HB_SCRIPT_MAHAJANI: hb_script_t = 1298229354;
pub const HB_SCRIPT_MANICHAEAN: hb_script_t = 1298230889;
pub const HB_SCRIPT_MENDE_KIKAKUI: hb_script_t = 1298493028;
pub const HB_SCRIPT_MODI: hb_script_t = 1299145833;
pub const HB_SCRIPT_MRO: hb_script_t = 1299345263;
pub const HB_SCRIPT_NABATAEAN: hb_script_t = 1315070324;
pub const HB_SCRIPT_OLD_NORTH_ARABIAN: hb_script_t = 1315009122;
pub const HB_SCRIPT_OLD_PERMIC: hb_script_t = 1348825709;
pub const HB_SCRIPT_PAHAWH_HMONG: hb_script_t = 1215131239;
pub const HB_SCRIPT_PALMYRENE: hb_script_t = 1348562029;
pub const HB_SCRIPT_PAU_CIN_HAU: hb_script_t = 1348564323;
pub const HB_SCRIPT_PSALTER_PAHLAVI: hb_script_t = 1349020784;
pub const HB_SCRIPT_SIDDHAM: hb_script_t = 1399415908;
pub const HB_SCRIPT_TIRHUTA: hb_script_t = 1416196712;
pub const HB_SCRIPT_WARANG_CITI: hb_script_t = 1466004065;
pub const HB_SCRIPT_AHOM: hb_script_t = 1097363309;
pub const HB_SCRIPT_ANATOLIAN_HIEROGLYPHS: hb_script_t = 1215067511;
pub const HB_SCRIPT_HATRAN: hb_script_t = 1214346354;
pub const HB_SCRIPT_MULTANI: hb_script_t = 1299541108;
pub const HB_SCRIPT_OLD_HUNGARIAN: hb_script_t = 1215655527;
pub const HB_SCRIPT_SIGNWRITING: hb_script_t = 1399287415;
pub const HB_SCRIPT_ADLAM: hb_script_t = 1097100397;
pub const HB_SCRIPT_BHAIKSUKI: hb_script_t = 1114139507;
pub const HB_SCRIPT_MARCHEN: hb_script_t = 1298231907;
pub const HB_SCRIPT_OSAGE: hb_script_t = 1332963173;
pub const HB_SCRIPT_TANGUT: hb_script_t = 1415671399;
pub const HB_SCRIPT_NEWA: hb_script_t = 1315272545;
pub const HB_SCRIPT_INVALID: hb_script_t = 0;
pub const _HB_SCRIPT_MAX_VALUE: hb_script_t = 4294967295;
pub const _HB_SCRIPT_MAX_VALUE_SIGNED: hb_script_t = 2147483647;
pub type hb_script_t = ::libc::c_uint;
extern "C" {
pub fn hb_script_from_iso15924_tag(tag: hb_tag_t) -> hb_script_t;
}
extern "C" {
pub fn hb_script_from_string(str: *const ::libc::c_char,
len: ::libc::c_int) -> hb_script_t;
}
extern "C" {
pub fn hb_script_to_iso15924_tag(script: hb_script_t) -> hb_tag_t;
}
extern "C" {
pub fn hb_script_get_horizontal_direction(script: hb_script_t)
-> hb_direction_t;
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_user_data_key_t {
pub unused: ::libc::c_char,
}
#[test]
fn bindgen_test_layout_hb_user_data_key_t() {
assert_eq!(::std::mem::size_of::<hb_user_data_key_t>() , 1usize , concat !
( "Size of: " , stringify ! ( hb_user_data_key_t ) ));
assert_eq! (::std::mem::align_of::<hb_user_data_key_t>() , 1usize , concat
! ( "Alignment of " , stringify ! ( hb_user_data_key_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_user_data_key_t ) ) . unused as *
const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_user_data_key_t ) ,
"::" , stringify ! ( unused ) ));
}
impl Clone for hb_user_data_key_t {
fn clone(&self) -> Self { *self }
}
pub type hb_destroy_func_t =
::std::option::Option<unsafe extern "C" fn(user_data:
*mut ::libc::c_void)>;
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_feature_t {
pub tag: hb_tag_t,
pub value: u32,
pub start: ::libc::c_uint,
pub end: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_hb_feature_t() {
assert_eq!(::std::mem::size_of::<hb_feature_t>() , 16usize , concat ! (
"Size of: " , stringify ! ( hb_feature_t ) ));
assert_eq! (::std::mem::align_of::<hb_feature_t>() , 4usize , concat ! (
"Alignment of " , stringify ! ( hb_feature_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_feature_t ) ) . tag as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_feature_t ) , "::" ,
stringify ! ( tag ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_feature_t ) ) . value as * const _ as
usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_feature_t ) , "::" ,
stringify ! ( value ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_feature_t ) ) . start as * const _ as
usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_feature_t ) , "::" ,
stringify ! ( start ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_feature_t ) ) . end as * const _ as
usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( hb_feature_t ) , "::" ,
stringify ! ( end ) ));
}
impl Clone for hb_feature_t {
fn clone(&self) -> Self { *self }
}
extern "C" {
pub fn hb_feature_from_string(str: *const ::libc::c_char,
len: ::libc::c_int,
feature: *mut hb_feature_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_feature_to_string(feature: *mut hb_feature_t,
buf: *mut ::libc::c_char,
size: ::libc::c_uint);
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_variation_t {
pub tag: hb_tag_t,
pub value: f32,
}
#[test]
fn bindgen_test_layout_hb_variation_t() {
assert_eq!(::std::mem::size_of::<hb_variation_t>() , 8usize , concat ! (
"Size of: " , stringify ! ( hb_variation_t ) ));
assert_eq! (::std::mem::align_of::<hb_variation_t>() , 4usize , concat ! (
"Alignment of " , stringify ! ( hb_variation_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_variation_t ) ) . tag as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_variation_t ) , "::"
, stringify ! ( tag ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_variation_t ) ) . value as * const _
as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_variation_t ) , "::"
, stringify ! ( value ) ));
}
impl Clone for hb_variation_t {
fn clone(&self) -> Self { *self }
}
extern "C" {
pub fn hb_variation_from_string(str: *const ::libc::c_char,
len: ::libc::c_int,
variation: *mut hb_variation_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_variation_to_string(variation: *mut hb_variation_t,
buf: *mut ::libc::c_char,
size: ::libc::c_uint);
}
pub const HB_MEMORY_MODE_DUPLICATE: hb_memory_mode_t = 0;
pub const HB_MEMORY_MODE_READONLY: hb_memory_mode_t = 1;
pub const HB_MEMORY_MODE_WRITABLE: hb_memory_mode_t = 2;
pub const HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE: hb_memory_mode_t = 3;
pub type hb_memory_mode_t = ::libc::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_blob_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_blob_create(data: *const ::libc::c_char, length: ::libc::c_uint,
mode: hb_memory_mode_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t) -> *mut hb_blob_t;
}
extern "C" {
pub fn hb_blob_create_sub_blob(parent: *mut hb_blob_t,
offset: ::libc::c_uint,
length: ::libc::c_uint) -> *mut hb_blob_t;
}
extern "C" {
pub fn hb_blob_get_empty() -> *mut hb_blob_t;
}
extern "C" {
pub fn hb_blob_reference(blob: *mut hb_blob_t) -> *mut hb_blob_t;
}
extern "C" {
pub fn hb_blob_destroy(blob: *mut hb_blob_t);
}
extern "C" {
pub fn hb_blob_set_user_data(blob: *mut hb_blob_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_blob_get_user_data(blob: *mut hb_blob_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_blob_make_immutable(blob: *mut hb_blob_t);
}
extern "C" {
pub fn hb_blob_is_immutable(blob: *mut hb_blob_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_blob_get_length(blob: *mut hb_blob_t) -> ::libc::c_uint;
}
extern "C" {
pub fn hb_blob_get_data(blob: *mut hb_blob_t, length: *mut ::libc::c_uint)
-> *const ::libc::c_char;
}
extern "C" {
pub fn hb_blob_get_data_writable(blob: *mut hb_blob_t,
length: *mut ::libc::c_uint)
-> *mut ::libc::c_char;
}
pub const HB_UNICODE_GENERAL_CATEGORY_CONTROL: hb_unicode_general_category_t =
0;
pub const HB_UNICODE_GENERAL_CATEGORY_FORMAT: hb_unicode_general_category_t =
1;
pub const HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED:
hb_unicode_general_category_t =
2;
pub const HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE:
hb_unicode_general_category_t =
3;
pub const HB_UNICODE_GENERAL_CATEGORY_SURROGATE: hb_unicode_general_category_t
=
4;
pub const HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER:
hb_unicode_general_category_t =
5;
pub const HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER:
hb_unicode_general_category_t =
6;
pub const HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER:
hb_unicode_general_category_t =
7;
pub const HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER:
hb_unicode_general_category_t =
8;
pub const HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER:
hb_unicode_general_category_t =
9;
pub const HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK:
hb_unicode_general_category_t =
10;
pub const HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK:
hb_unicode_general_category_t =
11;
pub const HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK:
hb_unicode_general_category_t =
12;
pub const HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER:
hb_unicode_general_category_t =
13;
pub const HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER:
hb_unicode_general_category_t =
14;
pub const HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER:
hb_unicode_general_category_t =
15;
pub const HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION:
hb_unicode_general_category_t =
16;
pub const HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION:
hb_unicode_general_category_t =
17;
pub const HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION:
hb_unicode_general_category_t =
18;
pub const HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION:
hb_unicode_general_category_t =
19;
pub const HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION:
hb_unicode_general_category_t =
20;
pub const HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION:
hb_unicode_general_category_t =
21;
pub const HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION:
hb_unicode_general_category_t =
22;
pub const HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL:
hb_unicode_general_category_t =
23;
pub const HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL:
hb_unicode_general_category_t =
24;
pub const HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL:
hb_unicode_general_category_t =
25;
pub const HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL:
hb_unicode_general_category_t =
26;
pub const HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR:
hb_unicode_general_category_t =
27;
pub const HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR:
hb_unicode_general_category_t =
28;
pub const HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR:
hb_unicode_general_category_t =
29;
pub type hb_unicode_general_category_t = ::libc::c_uint;
pub const HB_UNICODE_COMBINING_CLASS_NOT_REORDERED:
hb_unicode_combining_class_t =
0;
pub const HB_UNICODE_COMBINING_CLASS_OVERLAY: hb_unicode_combining_class_t =
1;
pub const HB_UNICODE_COMBINING_CLASS_NUKTA: hb_unicode_combining_class_t = 7;
pub const HB_UNICODE_COMBINING_CLASS_KANA_VOICING:
hb_unicode_combining_class_t =
8;
pub const HB_UNICODE_COMBINING_CLASS_VIRAMA: hb_unicode_combining_class_t = 9;
pub const HB_UNICODE_COMBINING_CLASS_CCC10: hb_unicode_combining_class_t = 10;
pub const HB_UNICODE_COMBINING_CLASS_CCC11: hb_unicode_combining_class_t = 11;
pub const HB_UNICODE_COMBINING_CLASS_CCC12: hb_unicode_combining_class_t = 12;
pub const HB_UNICODE_COMBINING_CLASS_CCC13: hb_unicode_combining_class_t = 13;
pub const HB_UNICODE_COMBINING_CLASS_CCC14: hb_unicode_combining_class_t = 14;
pub const HB_UNICODE_COMBINING_CLASS_CCC15: hb_unicode_combining_class_t = 15;
pub const HB_UNICODE_COMBINING_CLASS_CCC16: hb_unicode_combining_class_t = 16;
pub const HB_UNICODE_COMBINING_CLASS_CCC17: hb_unicode_combining_class_t = 17;
pub const HB_UNICODE_COMBINING_CLASS_CCC18: hb_unicode_combining_class_t = 18;
pub const HB_UNICODE_COMBINING_CLASS_CCC19: hb_unicode_combining_class_t = 19;
pub const HB_UNICODE_COMBINING_CLASS_CCC20: hb_unicode_combining_class_t = 20;
pub const HB_UNICODE_COMBINING_CLASS_CCC21: hb_unicode_combining_class_t = 21;
pub const HB_UNICODE_COMBINING_CLASS_CCC22: hb_unicode_combining_class_t = 22;
pub const HB_UNICODE_COMBINING_CLASS_CCC23: hb_unicode_combining_class_t = 23;
pub const HB_UNICODE_COMBINING_CLASS_CCC24: hb_unicode_combining_class_t = 24;
pub const HB_UNICODE_COMBINING_CLASS_CCC25: hb_unicode_combining_class_t = 25;
pub const HB_UNICODE_COMBINING_CLASS_CCC26: hb_unicode_combining_class_t = 26;
pub const HB_UNICODE_COMBINING_CLASS_CCC27: hb_unicode_combining_class_t = 27;
pub const HB_UNICODE_COMBINING_CLASS_CCC28: hb_unicode_combining_class_t = 28;
pub const HB_UNICODE_COMBINING_CLASS_CCC29: hb_unicode_combining_class_t = 29;
pub const HB_UNICODE_COMBINING_CLASS_CCC30: hb_unicode_combining_class_t = 30;
pub const HB_UNICODE_COMBINING_CLASS_CCC31: hb_unicode_combining_class_t = 31;
pub const HB_UNICODE_COMBINING_CLASS_CCC32: hb_unicode_combining_class_t = 32;
pub const HB_UNICODE_COMBINING_CLASS_CCC33: hb_unicode_combining_class_t = 33;
pub const HB_UNICODE_COMBINING_CLASS_CCC34: hb_unicode_combining_class_t = 34;
pub const HB_UNICODE_COMBINING_CLASS_CCC35: hb_unicode_combining_class_t = 35;
pub const HB_UNICODE_COMBINING_CLASS_CCC36: hb_unicode_combining_class_t = 36;
pub const HB_UNICODE_COMBINING_CLASS_CCC84: hb_unicode_combining_class_t = 84;
pub const HB_UNICODE_COMBINING_CLASS_CCC91: hb_unicode_combining_class_t = 91;
pub const HB_UNICODE_COMBINING_CLASS_CCC103: hb_unicode_combining_class_t =
103;
pub const HB_UNICODE_COMBINING_CLASS_CCC107: hb_unicode_combining_class_t =
107;
pub const HB_UNICODE_COMBINING_CLASS_CCC118: hb_unicode_combining_class_t =
118;
pub const HB_UNICODE_COMBINING_CLASS_CCC122: hb_unicode_combining_class_t =
122;
pub const HB_UNICODE_COMBINING_CLASS_CCC129: hb_unicode_combining_class_t =
129;
pub const HB_UNICODE_COMBINING_CLASS_CCC130: hb_unicode_combining_class_t =
130;
pub const HB_UNICODE_COMBINING_CLASS_CCC133: hb_unicode_combining_class_t =
132;
pub const HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT:
hb_unicode_combining_class_t =
200;
pub const HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW:
hb_unicode_combining_class_t =
202;
pub const HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE:
hb_unicode_combining_class_t =
214;
pub const HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT:
hb_unicode_combining_class_t =
216;
pub const HB_UNICODE_COMBINING_CLASS_BELOW_LEFT: hb_unicode_combining_class_t
=
218;
pub const HB_UNICODE_COMBINING_CLASS_BELOW: hb_unicode_combining_class_t =
220;
pub const HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT: hb_unicode_combining_class_t
=
222;
pub const HB_UNICODE_COMBINING_CLASS_LEFT: hb_unicode_combining_class_t = 224;
pub const HB_UNICODE_COMBINING_CLASS_RIGHT: hb_unicode_combining_class_t =
226;
pub const HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT: hb_unicode_combining_class_t
=
228;
pub const HB_UNICODE_COMBINING_CLASS_ABOVE: hb_unicode_combining_class_t =
230;
pub const HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT: hb_unicode_combining_class_t
=
232;
pub const HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW:
hb_unicode_combining_class_t =
233;
pub const HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE:
hb_unicode_combining_class_t =
234;
pub const HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT:
hb_unicode_combining_class_t =
240;
pub const HB_UNICODE_COMBINING_CLASS_INVALID: hb_unicode_combining_class_t =
255;
pub type hb_unicode_combining_class_t = ::libc::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_unicode_funcs_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_unicode_funcs_get_default() -> *mut hb_unicode_funcs_t;
}
extern "C" {
pub fn hb_unicode_funcs_create(parent: *mut hb_unicode_funcs_t)
-> *mut hb_unicode_funcs_t;
}
extern "C" {
pub fn hb_unicode_funcs_get_empty() -> *mut hb_unicode_funcs_t;
}
extern "C" {
pub fn hb_unicode_funcs_reference(ufuncs: *mut hb_unicode_funcs_t)
-> *mut hb_unicode_funcs_t;
}
extern "C" {
pub fn hb_unicode_funcs_destroy(ufuncs: *mut hb_unicode_funcs_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_user_data(ufuncs: *mut hb_unicode_funcs_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_unicode_funcs_get_user_data(ufuncs: *mut hb_unicode_funcs_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_unicode_funcs_make_immutable(ufuncs: *mut hb_unicode_funcs_t);
}
extern "C" {
pub fn hb_unicode_funcs_is_immutable(ufuncs: *mut hb_unicode_funcs_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_unicode_funcs_get_parent(ufuncs: *mut hb_unicode_funcs_t)
-> *mut hb_unicode_funcs_t;
}
pub type hb_unicode_combining_class_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
unicode: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_unicode_combining_class_t>;
pub type hb_unicode_eastasian_width_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
unicode: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> ::libc::c_uint>;
pub type hb_unicode_general_category_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
unicode: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_unicode_general_category_t>;
pub type hb_unicode_mirroring_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
unicode: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_codepoint_t>;
pub type hb_unicode_script_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
unicode: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_script_t>;
pub type hb_unicode_compose_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
a: hb_codepoint_t,
b: hb_codepoint_t,
ab: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_unicode_decompose_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
ab: hb_codepoint_t,
a: *mut hb_codepoint_t,
b: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_unicode_decompose_compatibility_func_t =
::std::option::Option<unsafe extern "C" fn(ufuncs:
*mut hb_unicode_funcs_t,
u: hb_codepoint_t,
decomposed:
*mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> ::libc::c_uint>;
extern "C" {
pub fn hb_unicode_funcs_set_combining_class_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_combining_class_func_t,
user_data:
*mut ::libc::c_void,
destroy:
hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_eastasian_width_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_eastasian_width_func_t,
user_data:
*mut ::libc::c_void,
destroy:
hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_general_category_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_general_category_func_t,
user_data:
*mut ::libc::c_void,
destroy:
hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_mirroring_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_mirroring_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_script_func(ufuncs: *mut hb_unicode_funcs_t,
func: hb_unicode_script_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_compose_func(ufuncs: *mut hb_unicode_funcs_t,
func: hb_unicode_compose_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_decompose_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_decompose_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_funcs_set_decompose_compatibility_func(ufuncs:
*mut hb_unicode_funcs_t,
func:
hb_unicode_decompose_compatibility_func_t,
user_data:
*mut ::libc::c_void,
destroy:
hb_destroy_func_t);
}
extern "C" {
pub fn hb_unicode_combining_class(ufuncs: *mut hb_unicode_funcs_t,
unicode: hb_codepoint_t)
-> hb_unicode_combining_class_t;
}
extern "C" {
pub fn hb_unicode_eastasian_width(ufuncs: *mut hb_unicode_funcs_t,
unicode: hb_codepoint_t)
-> ::libc::c_uint;
}
extern "C" {
pub fn hb_unicode_general_category(ufuncs: *mut hb_unicode_funcs_t,
unicode: hb_codepoint_t)
-> hb_unicode_general_category_t;
}
extern "C" {
pub fn hb_unicode_mirroring(ufuncs: *mut hb_unicode_funcs_t,
unicode: hb_codepoint_t) -> hb_codepoint_t;
}
extern "C" {
pub fn hb_unicode_script(ufuncs: *mut hb_unicode_funcs_t,
unicode: hb_codepoint_t) -> hb_script_t;
}
extern "C" {
pub fn hb_unicode_compose(ufuncs: *mut hb_unicode_funcs_t,
a: hb_codepoint_t, b: hb_codepoint_t,
ab: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_unicode_decompose(ufuncs: *mut hb_unicode_funcs_t,
ab: hb_codepoint_t, a: *mut hb_codepoint_t,
b: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_unicode_decompose_compatibility(ufuncs: *mut hb_unicode_funcs_t,
u: hb_codepoint_t,
decomposed: *mut hb_codepoint_t)
-> ::libc::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_face_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_face_create(blob: *mut hb_blob_t, index: ::libc::c_uint)
-> *mut hb_face_t;
}
pub type hb_reference_table_func_t =
::std::option::Option<unsafe extern "C" fn(face: *mut hb_face_t,
tag: hb_tag_t,
user_data: *mut ::libc::c_void)
-> *mut hb_blob_t>;
extern "C" {
pub fn hb_face_create_for_tables(reference_table_func:
hb_reference_table_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t)
-> *mut hb_face_t;
}
extern "C" {
pub fn hb_face_get_empty() -> *mut hb_face_t;
}
extern "C" {
pub fn hb_face_reference(face: *mut hb_face_t) -> *mut hb_face_t;
}
extern "C" {
pub fn hb_face_destroy(face: *mut hb_face_t);
}
extern "C" {
pub fn hb_face_set_user_data(face: *mut hb_face_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_face_get_user_data(face: *mut hb_face_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_face_make_immutable(face: *mut hb_face_t);
}
extern "C" {
pub fn hb_face_is_immutable(face: *mut hb_face_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_face_reference_table(face: *mut hb_face_t, tag: hb_tag_t)
-> *mut hb_blob_t;
}
extern "C" {
pub fn hb_face_reference_blob(face: *mut hb_face_t) -> *mut hb_blob_t;
}
extern "C" {
pub fn hb_face_set_index(face: *mut hb_face_t, index: ::libc::c_uint);
}
extern "C" {
pub fn hb_face_get_index(face: *mut hb_face_t) -> ::libc::c_uint;
}
extern "C" {
pub fn hb_face_set_upem(face: *mut hb_face_t, upem: ::libc::c_uint);
}
extern "C" {
pub fn hb_face_get_upem(face: *mut hb_face_t) -> ::libc::c_uint;
}
extern "C" {
pub fn hb_face_set_glyph_count(face: *mut hb_face_t,
glyph_count: ::libc::c_uint);
}
extern "C" {
pub fn hb_face_get_glyph_count(face: *mut hb_face_t) -> ::libc::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_font_t {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_font_funcs_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_font_funcs_create() -> *mut hb_font_funcs_t;
}
extern "C" {
pub fn hb_font_funcs_get_empty() -> *mut hb_font_funcs_t;
}
extern "C" {
pub fn hb_font_funcs_reference(ffuncs: *mut hb_font_funcs_t)
-> *mut hb_font_funcs_t;
}
extern "C" {
pub fn hb_font_funcs_destroy(ffuncs: *mut hb_font_funcs_t);
}
extern "C" {
pub fn hb_font_funcs_set_user_data(ffuncs: *mut hb_font_funcs_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_funcs_get_user_data(ffuncs: *mut hb_font_funcs_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_font_funcs_make_immutable(ffuncs: *mut hb_font_funcs_t);
}
extern "C" {
pub fn hb_font_funcs_is_immutable(ffuncs: *mut hb_font_funcs_t)
-> hb_bool_t;
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_font_extents_t {
pub ascender: hb_position_t,
pub descender: hb_position_t,
pub line_gap: hb_position_t,
pub reserved9: hb_position_t,
pub reserved8: hb_position_t,
pub reserved7: hb_position_t,
pub reserved6: hb_position_t,
pub reserved5: hb_position_t,
pub reserved4: hb_position_t,
pub reserved3: hb_position_t,
pub reserved2: hb_position_t,
pub reserved1: hb_position_t,
}
#[test]
fn bindgen_test_layout_hb_font_extents_t() {
assert_eq!(::std::mem::size_of::<hb_font_extents_t>() , 48usize , concat !
( "Size of: " , stringify ! ( hb_font_extents_t ) ));
assert_eq! (::std::mem::align_of::<hb_font_extents_t>() , 4usize , concat
! ( "Alignment of " , stringify ! ( hb_font_extents_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . ascender as *
const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( ascender ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . descender as *
const _ as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( descender ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . line_gap as *
const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( line_gap ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved9 as *
const _ as usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved9 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved8 as *
const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved8 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved7 as *
const _ as usize } , 20usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved7 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved6 as *
const _ as usize } , 24usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved6 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved5 as *
const _ as usize } , 28usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved5 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved4 as *
const _ as usize } , 32usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved4 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved3 as *
const _ as usize } , 36usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved3 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved2 as *
const _ as usize } , 40usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved2 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_font_extents_t ) ) . reserved1 as *
const _ as usize } , 44usize , concat ! (
"Alignment of field: " , stringify ! ( hb_font_extents_t ) ,
"::" , stringify ! ( reserved1 ) ));
}
impl Clone for hb_font_extents_t {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_glyph_extents_t {
pub x_bearing: hb_position_t,
pub y_bearing: hb_position_t,
pub width: hb_position_t,
pub height: hb_position_t,
}
#[test]
fn bindgen_test_layout_hb_glyph_extents_t() {
assert_eq!(::std::mem::size_of::<hb_glyph_extents_t>() , 16usize , concat
! ( "Size of: " , stringify ! ( hb_glyph_extents_t ) ));
assert_eq! (::std::mem::align_of::<hb_glyph_extents_t>() , 4usize , concat
! ( "Alignment of " , stringify ! ( hb_glyph_extents_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_extents_t ) ) . x_bearing as *
const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_extents_t ) ,
"::" , stringify ! ( x_bearing ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_extents_t ) ) . y_bearing as *
const _ as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_extents_t ) ,
"::" , stringify ! ( y_bearing ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_extents_t ) ) . width as * const
_ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_extents_t ) ,
"::" , stringify ! ( width ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_extents_t ) ) . height as *
const _ as usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_extents_t ) ,
"::" , stringify ! ( height ) ));
}
impl Clone for hb_glyph_extents_t {
fn clone(&self) -> Self { *self }
}
pub type hb_font_get_font_extents_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
metrics:
*mut hb_font_extents_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_font_h_extents_func_t = hb_font_get_font_extents_func_t;
pub type hb_font_get_font_v_extents_func_t = hb_font_get_font_extents_func_t;
pub type hb_font_get_nominal_glyph_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
unicode: hb_codepoint_t,
glyph: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_variation_glyph_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
unicode: hb_codepoint_t,
variation_selector:
hb_codepoint_t,
glyph: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_glyph_advance_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
glyph: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_position_t>;
pub type hb_font_get_glyph_h_advance_func_t =
hb_font_get_glyph_advance_func_t;
pub type hb_font_get_glyph_v_advance_func_t =
hb_font_get_glyph_advance_func_t;
pub type hb_font_get_glyph_origin_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
glyph: hb_codepoint_t,
x: *mut hb_position_t,
y: *mut hb_position_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_glyph_h_origin_func_t = hb_font_get_glyph_origin_func_t;
pub type hb_font_get_glyph_v_origin_func_t = hb_font_get_glyph_origin_func_t;
pub type hb_font_get_glyph_kerning_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
first_glyph: hb_codepoint_t,
second_glyph: hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_position_t>;
pub type hb_font_get_glyph_h_kerning_func_t =
hb_font_get_glyph_kerning_func_t;
pub type hb_font_get_glyph_v_kerning_func_t =
hb_font_get_glyph_kerning_func_t;
pub type hb_font_get_glyph_extents_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
glyph: hb_codepoint_t,
extents:
*mut hb_glyph_extents_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_glyph_contour_point_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
glyph: hb_codepoint_t,
point_index: ::libc::c_uint,
x: *mut hb_position_t,
y: *mut hb_position_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_glyph_name_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
glyph: hb_codepoint_t,
name: *mut ::libc::c_char,
size: ::libc::c_uint,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
pub type hb_font_get_glyph_from_name_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
name: *const ::libc::c_char,
len: ::libc::c_int,
glyph: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
extern "C" {
pub fn hb_font_funcs_set_font_h_extents_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_font_h_extents_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_font_v_extents_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_font_v_extents_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_nominal_glyph_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_nominal_glyph_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_variation_glyph_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_variation_glyph_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_h_advance_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_h_advance_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_v_advance_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_v_advance_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_h_origin_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_glyph_h_origin_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_v_origin_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_glyph_v_origin_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_h_kerning_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_h_kerning_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_v_kerning_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_v_kerning_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_extents_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_glyph_extents_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_contour_point_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_contour_point_func_t,
user_data:
*mut ::libc::c_void,
destroy:
hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_name_func(ffuncs: *mut hb_font_funcs_t,
func:
hb_font_get_glyph_name_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_funcs_set_glyph_from_name_func(ffuncs:
*mut hb_font_funcs_t,
func:
hb_font_get_glyph_from_name_func_t,
user_data:
*mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_get_h_extents(font: *mut hb_font_t,
extents: *mut hb_font_extents_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_v_extents(font: *mut hb_font_t,
extents: *mut hb_font_extents_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_nominal_glyph(font: *mut hb_font_t,
unicode: hb_codepoint_t,
glyph: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_variation_glyph(font: *mut hb_font_t,
unicode: hb_codepoint_t,
variation_selector: hb_codepoint_t,
glyph: *mut hb_codepoint_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_h_advance(font: *mut hb_font_t,
glyph: hb_codepoint_t)
-> hb_position_t;
}
extern "C" {
pub fn hb_font_get_glyph_v_advance(font: *mut hb_font_t,
glyph: hb_codepoint_t)
-> hb_position_t;
}
extern "C" {
pub fn hb_font_get_glyph_h_origin(font: *mut hb_font_t,
glyph: hb_codepoint_t,
x: *mut hb_position_t,
y: *mut hb_position_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_v_origin(font: *mut hb_font_t,
glyph: hb_codepoint_t,
x: *mut hb_position_t,
y: *mut hb_position_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_h_kerning(font: *mut hb_font_t,
left_glyph: hb_codepoint_t,
right_glyph: hb_codepoint_t)
-> hb_position_t;
}
extern "C" {
pub fn hb_font_get_glyph_v_kerning(font: *mut hb_font_t,
top_glyph: hb_codepoint_t,
bottom_glyph: hb_codepoint_t)
-> hb_position_t;
}
extern "C" {
pub fn hb_font_get_glyph_extents(font: *mut hb_font_t,
glyph: hb_codepoint_t,
extents: *mut hb_glyph_extents_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_contour_point(font: *mut hb_font_t,
glyph: hb_codepoint_t,
point_index: ::libc::c_uint,
x: *mut hb_position_t,
y: *mut hb_position_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_name(font: *mut hb_font_t, glyph: hb_codepoint_t,
name: *mut ::libc::c_char,
size: ::libc::c_uint) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_from_name(font: *mut hb_font_t,
name: *const ::libc::c_char,
len: ::libc::c_int,
glyph: *mut hb_codepoint_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph(font: *mut hb_font_t, unicode: hb_codepoint_t,
variation_selector: hb_codepoint_t,
glyph: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_extents_for_direction(font: *mut hb_font_t,
direction: hb_direction_t,
extents: *mut hb_font_extents_t);
}
extern "C" {
pub fn hb_font_get_glyph_advance_for_direction(font: *mut hb_font_t,
glyph: hb_codepoint_t,
direction: hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t);
}
extern "C" {
pub fn hb_font_get_glyph_origin_for_direction(font: *mut hb_font_t,
glyph: hb_codepoint_t,
direction: hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t);
}
extern "C" {
pub fn hb_font_add_glyph_origin_for_direction(font: *mut hb_font_t,
glyph: hb_codepoint_t,
direction: hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t);
}
extern "C" {
pub fn hb_font_subtract_glyph_origin_for_direction(font: *mut hb_font_t,
glyph: hb_codepoint_t,
direction:
hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t);
}
extern "C" {
pub fn hb_font_get_glyph_kerning_for_direction(font: *mut hb_font_t,
first_glyph:
hb_codepoint_t,
second_glyph:
hb_codepoint_t,
direction: hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t);
}
extern "C" {
pub fn hb_font_get_glyph_extents_for_origin(font: *mut hb_font_t,
glyph: hb_codepoint_t,
direction: hb_direction_t,
extents:
*mut hb_glyph_extents_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_glyph_contour_point_for_origin(font: *mut hb_font_t,
glyph: hb_codepoint_t,
point_index:
::libc::c_uint,
direction:
hb_direction_t,
x: *mut hb_position_t,
y: *mut hb_position_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_font_glyph_to_string(font: *mut hb_font_t,
glyph: hb_codepoint_t,
s: *mut ::libc::c_char,
size: ::libc::c_uint);
}
extern "C" {
pub fn hb_font_glyph_from_string(font: *mut hb_font_t,
s: *const ::libc::c_char,
len: ::libc::c_int,
glyph: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_create(face: *mut hb_face_t) -> *mut hb_font_t;
}
extern "C" {
pub fn hb_font_create_sub_font(parent: *mut hb_font_t) -> *mut hb_font_t;
}
extern "C" {
pub fn hb_font_get_empty() -> *mut hb_font_t;
}
extern "C" {
pub fn hb_font_reference(font: *mut hb_font_t) -> *mut hb_font_t;
}
extern "C" {
pub fn hb_font_destroy(font: *mut hb_font_t);
}
extern "C" {
pub fn hb_font_set_user_data(font: *mut hb_font_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_get_user_data(font: *mut hb_font_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_font_make_immutable(font: *mut hb_font_t);
}
extern "C" {
pub fn hb_font_is_immutable(font: *mut hb_font_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_font_set_parent(font: *mut hb_font_t, parent: *mut hb_font_t);
}
extern "C" {
pub fn hb_font_get_parent(font: *mut hb_font_t) -> *mut hb_font_t;
}
extern "C" {
pub fn hb_font_set_face(font: *mut hb_font_t, face: *mut hb_face_t);
}
extern "C" {
pub fn hb_font_get_face(font: *mut hb_font_t) -> *mut hb_face_t;
}
extern "C" {
pub fn hb_font_set_funcs(font: *mut hb_font_t,
klass: *mut hb_font_funcs_t,
font_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_set_funcs_data(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
extern "C" {
pub fn hb_font_set_scale(font: *mut hb_font_t, x_scale: ::libc::c_int,
y_scale: ::libc::c_int);
}
extern "C" {
pub fn hb_font_get_scale(font: *mut hb_font_t,
x_scale: *mut ::libc::c_int,
y_scale: *mut ::libc::c_int);
}
extern "C" {
pub fn hb_font_set_ppem(font: *mut hb_font_t, x_ppem: ::libc::c_uint,
y_ppem: ::libc::c_uint);
}
extern "C" {
pub fn hb_font_get_ppem(font: *mut hb_font_t, x_ppem: *mut ::libc::c_uint,
y_ppem: *mut ::libc::c_uint);
}
extern "C" {
pub fn hb_font_set_variations(font: *mut hb_font_t,
variations: *const hb_variation_t,
variations_length: ::libc::c_uint);
}
extern "C" {
pub fn hb_font_set_var_coords_design(font: *mut hb_font_t,
coords: *const f32,
coords_length: ::libc::c_uint);
}
extern "C" {
pub fn hb_font_set_var_coords_normalized(font: *mut hb_font_t,
coords: *const ::libc::c_int,
coords_length: ::libc::c_uint);
}
extern "C" {
pub fn hb_font_get_var_coords_normalized(font: *mut hb_font_t,
length: *mut ::libc::c_uint)
-> *const ::libc::c_int;
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_glyph_info_t {
pub codepoint: hb_codepoint_t,
pub mask: hb_mask_t,
pub cluster: u32,
pub var1: hb_var_int_t,
pub var2: hb_var_int_t,
}
#[test]
fn bindgen_test_layout_hb_glyph_info_t() {
assert_eq!(::std::mem::size_of::<hb_glyph_info_t>() , 20usize , concat ! (
"Size of: " , stringify ! ( hb_glyph_info_t ) ));
assert_eq! (::std::mem::align_of::<hb_glyph_info_t>() , 4usize , concat !
( "Alignment of " , stringify ! ( hb_glyph_info_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_info_t ) ) . codepoint as *
const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_info_t ) ,
"::" , stringify ! ( codepoint ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_info_t ) ) . mask as * const _
as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_info_t ) ,
"::" , stringify ! ( mask ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_info_t ) ) . cluster as * const
_ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_info_t ) ,
"::" , stringify ! ( cluster ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_info_t ) ) . var1 as * const _
as usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_info_t ) ,
"::" , stringify ! ( var1 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_info_t ) ) . var2 as * const _
as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_info_t ) ,
"::" , stringify ! ( var2 ) ));
}
impl Clone for hb_glyph_info_t {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_glyph_position_t {
pub x_advance: hb_position_t,
pub y_advance: hb_position_t,
pub x_offset: hb_position_t,
pub y_offset: hb_position_t,
pub var: hb_var_int_t,
}
#[test]
fn bindgen_test_layout_hb_glyph_position_t() {
assert_eq!(::std::mem::size_of::<hb_glyph_position_t>() , 20usize , concat
! ( "Size of: " , stringify ! ( hb_glyph_position_t ) ));
assert_eq! (::std::mem::align_of::<hb_glyph_position_t>() , 4usize ,
concat ! (
"Alignment of " , stringify ! ( hb_glyph_position_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_position_t ) ) . x_advance as *
const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_position_t ) ,
"::" , stringify ! ( x_advance ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_position_t ) ) . y_advance as *
const _ as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_position_t ) ,
"::" , stringify ! ( y_advance ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_position_t ) ) . x_offset as *
const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_position_t ) ,
"::" , stringify ! ( x_offset ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_position_t ) ) . y_offset as *
const _ as usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_position_t ) ,
"::" , stringify ! ( y_offset ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_glyph_position_t ) ) . var as * const
_ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( hb_glyph_position_t ) ,
"::" , stringify ! ( var ) ));
}
impl Clone for hb_glyph_position_t {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct hb_segment_properties_t {
pub direction: hb_direction_t,
pub script: hb_script_t,
pub language: hb_language_t,
pub reserved1: *mut ::libc::c_void,
pub reserved2: *mut ::libc::c_void,
}
#[test]
fn bindgen_test_layout_hb_segment_properties_t() {
assert_eq!(::std::mem::size_of::<hb_segment_properties_t>() , 32usize ,
concat ! (
"Size of: " , stringify ! ( hb_segment_properties_t ) ));
assert_eq! (::std::mem::align_of::<hb_segment_properties_t>() , 8usize ,
concat ! (
"Alignment of " , stringify ! ( hb_segment_properties_t ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_segment_properties_t ) ) . direction
as * const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( hb_segment_properties_t
) , "::" , stringify ! ( direction ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_segment_properties_t ) ) . script as *
const _ as usize } , 4usize , concat ! (
"Alignment of field: " , stringify ! ( hb_segment_properties_t
) , "::" , stringify ! ( script ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_segment_properties_t ) ) . language as
* const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( hb_segment_properties_t
) , "::" , stringify ! ( language ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_segment_properties_t ) ) . reserved1
as * const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( hb_segment_properties_t
) , "::" , stringify ! ( reserved1 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const hb_segment_properties_t ) ) . reserved2
as * const _ as usize } , 24usize , concat ! (
"Alignment of field: " , stringify ! ( hb_segment_properties_t
) , "::" , stringify ! ( reserved2 ) ));
}
impl Clone for hb_segment_properties_t {
fn clone(&self) -> Self { *self }
}
extern "C" {
pub fn hb_segment_properties_equal(a: *const hb_segment_properties_t,
b: *const hb_segment_properties_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_segment_properties_hash(p: *const hb_segment_properties_t)
-> ::libc::c_uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_buffer_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_buffer_create() -> *mut hb_buffer_t;
}
extern "C" {
pub fn hb_buffer_get_empty() -> *mut hb_buffer_t;
}
extern "C" {
pub fn hb_buffer_reference(buffer: *mut hb_buffer_t) -> *mut hb_buffer_t;
}
extern "C" {
pub fn hb_buffer_destroy(buffer: *mut hb_buffer_t);
}
extern "C" {
pub fn hb_buffer_set_user_data(buffer: *mut hb_buffer_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_buffer_get_user_data(buffer: *mut hb_buffer_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
pub const HB_BUFFER_CONTENT_TYPE_INVALID: hb_buffer_content_type_t = 0;
pub const HB_BUFFER_CONTENT_TYPE_UNICODE: hb_buffer_content_type_t = 1;
pub const HB_BUFFER_CONTENT_TYPE_GLYPHS: hb_buffer_content_type_t = 2;
pub type hb_buffer_content_type_t = ::libc::c_uint;
extern "C" {
pub fn hb_buffer_set_content_type(buffer: *mut hb_buffer_t,
content_type: hb_buffer_content_type_t);
}
extern "C" {
pub fn hb_buffer_get_content_type(buffer: *mut hb_buffer_t)
-> hb_buffer_content_type_t;
}
extern "C" {
pub fn hb_buffer_set_unicode_funcs(buffer: *mut hb_buffer_t,
unicode_funcs:
*mut hb_unicode_funcs_t);
}
extern "C" {
pub fn hb_buffer_get_unicode_funcs(buffer: *mut hb_buffer_t)
-> *mut hb_unicode_funcs_t;
}
extern "C" {
pub fn hb_buffer_set_direction(buffer: *mut hb_buffer_t,
direction: hb_direction_t);
}
extern "C" {
pub fn hb_buffer_get_direction(buffer: *mut hb_buffer_t)
-> hb_direction_t;
}
extern "C" {
pub fn hb_buffer_set_script(buffer: *mut hb_buffer_t,
script: hb_script_t);
}
extern "C" {
pub fn hb_buffer_get_script(buffer: *mut hb_buffer_t) -> hb_script_t;
}
extern "C" {
pub fn hb_buffer_set_language(buffer: *mut hb_buffer_t,
language: hb_language_t);
}
extern "C" {
pub fn hb_buffer_get_language(buffer: *mut hb_buffer_t) -> hb_language_t;
}
extern "C" {
pub fn hb_buffer_set_segment_properties(buffer: *mut hb_buffer_t,
props:
*const hb_segment_properties_t);
}
extern "C" {
pub fn hb_buffer_get_segment_properties(buffer: *mut hb_buffer_t,
props:
*mut hb_segment_properties_t);
}
extern "C" {
pub fn hb_buffer_guess_segment_properties(buffer: *mut hb_buffer_t);
}
pub const HB_BUFFER_FLAG_DEFAULT: hb_buffer_flags_t = 0;
pub const HB_BUFFER_FLAG_BOT: hb_buffer_flags_t = 1;
pub const HB_BUFFER_FLAG_EOT: hb_buffer_flags_t = 2;
pub const HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES: hb_buffer_flags_t = 4;
pub type hb_buffer_flags_t = ::libc::c_uint;
extern "C" {
pub fn hb_buffer_set_flags(buffer: *mut hb_buffer_t,
flags: hb_buffer_flags_t);
}
extern "C" {
pub fn hb_buffer_get_flags(buffer: *mut hb_buffer_t) -> hb_buffer_flags_t;
}
pub const HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES:
hb_buffer_cluster_level_t =
0;
pub const HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS:
hb_buffer_cluster_level_t =
1;
pub const HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: hb_buffer_cluster_level_t = 2;
pub const HB_BUFFER_CLUSTER_LEVEL_DEFAULT: hb_buffer_cluster_level_t = 0;
pub type hb_buffer_cluster_level_t = ::libc::c_uint;
extern "C" {
pub fn hb_buffer_set_cluster_level(buffer: *mut hb_buffer_t,
cluster_level:
hb_buffer_cluster_level_t);
}
extern "C" {
pub fn hb_buffer_get_cluster_level(buffer: *mut hb_buffer_t)
-> hb_buffer_cluster_level_t;
}
extern "C" {
pub fn hb_buffer_set_replacement_codepoint(buffer: *mut hb_buffer_t,
replacement: hb_codepoint_t);
}
extern "C" {
pub fn hb_buffer_get_replacement_codepoint(buffer: *mut hb_buffer_t)
-> hb_codepoint_t;
}
extern "C" {
pub fn hb_buffer_reset(buffer: *mut hb_buffer_t);
}
extern "C" {
pub fn hb_buffer_clear_contents(buffer: *mut hb_buffer_t);
}
extern "C" {
pub fn hb_buffer_pre_allocate(buffer: *mut hb_buffer_t,
size: ::libc::c_uint) -> hb_bool_t;
}
extern "C" {
pub fn hb_buffer_allocation_successful(buffer: *mut hb_buffer_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_buffer_reverse(buffer: *mut hb_buffer_t);
}
extern "C" {
pub fn hb_buffer_reverse_range(buffer: *mut hb_buffer_t,
start: ::libc::c_uint,
end: ::libc::c_uint);
}
extern "C" {
pub fn hb_buffer_reverse_clusters(buffer: *mut hb_buffer_t);
}
extern "C" {
pub fn hb_buffer_add(buffer: *mut hb_buffer_t, codepoint: hb_codepoint_t,
cluster: ::libc::c_uint);
}
extern "C" {
pub fn hb_buffer_add_utf8(buffer: *mut hb_buffer_t,
text: *const ::libc::c_char,
text_length: ::libc::c_int,
item_offset: ::libc::c_uint,
item_length: ::libc::c_int);
}
extern "C" {
pub fn hb_buffer_add_utf16(buffer: *mut hb_buffer_t, text: *const u16,
text_length: ::libc::c_int,
item_offset: ::libc::c_uint,
item_length: ::libc::c_int);
}
extern "C" {
pub fn hb_buffer_add_utf32(buffer: *mut hb_buffer_t, text: *const u32,
text_length: ::libc::c_int,
item_offset: ::libc::c_uint,
item_length: ::libc::c_int);
}
extern "C" {
pub fn hb_buffer_add_latin1(buffer: *mut hb_buffer_t, text: *const u8,
text_length: ::libc::c_int,
item_offset: ::libc::c_uint,
item_length: ::libc::c_int);
}
extern "C" {
pub fn hb_buffer_add_codepoints(buffer: *mut hb_buffer_t,
text: *const hb_codepoint_t,
text_length: ::libc::c_int,
item_offset: ::libc::c_uint,
item_length: ::libc::c_int);
}
extern "C" {
pub fn hb_buffer_set_length(buffer: *mut hb_buffer_t,
length: ::libc::c_uint) -> hb_bool_t;
}
extern "C" {
pub fn hb_buffer_get_length(buffer: *mut hb_buffer_t) -> ::libc::c_uint;
}
extern "C" {
pub fn hb_buffer_get_glyph_infos(buffer: *mut hb_buffer_t,
length: *mut ::libc::c_uint)
-> *mut hb_glyph_info_t;
}
extern "C" {
pub fn hb_buffer_get_glyph_positions(buffer: *mut hb_buffer_t,
length: *mut ::libc::c_uint)
-> *mut hb_glyph_position_t;
}
extern "C" {
pub fn hb_buffer_normalize_glyphs(buffer: *mut hb_buffer_t);
}
pub const HB_BUFFER_SERIALIZE_FLAG_DEFAULT: hb_buffer_serialize_flags_t = 0;
pub const HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: hb_buffer_serialize_flags_t =
1;
pub const HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: hb_buffer_serialize_flags_t =
2;
pub const HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: hb_buffer_serialize_flags_t
=
4;
pub const HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: hb_buffer_serialize_flags_t
=
8;
pub type hb_buffer_serialize_flags_t = ::libc::c_uint;
pub const HB_BUFFER_SERIALIZE_FORMAT_TEXT: hb_buffer_serialize_format_t =
1413830740;
pub const HB_BUFFER_SERIALIZE_FORMAT_JSON: hb_buffer_serialize_format_t =
1246973774;
pub const HB_BUFFER_SERIALIZE_FORMAT_INVALID: hb_buffer_serialize_format_t =
0;
pub type hb_buffer_serialize_format_t = ::libc::c_uint;
extern "C" {
pub fn hb_buffer_serialize_format_from_string(str: *const ::libc::c_char,
len: ::libc::c_int)
-> hb_buffer_serialize_format_t;
}
extern "C" {
pub fn hb_buffer_serialize_format_to_string(format:
hb_buffer_serialize_format_t)
-> *const ::libc::c_char;
}
extern "C" {
pub fn hb_buffer_serialize_list_formats() -> *mut *const ::libc::c_char;
}
extern "C" {
pub fn hb_buffer_serialize_glyphs(buffer: *mut hb_buffer_t,
start: ::libc::c_uint,
end: ::libc::c_uint,
buf: *mut ::libc::c_char,
buf_size: ::libc::c_uint,
buf_consumed: *mut ::libc::c_uint,
font: *mut hb_font_t,
format: hb_buffer_serialize_format_t,
flags: hb_buffer_serialize_flags_t)
-> ::libc::c_uint;
}
extern "C" {
pub fn hb_buffer_deserialize_glyphs(buffer: *mut hb_buffer_t,
buf: *const ::libc::c_char,
buf_len: ::libc::c_int,
end_ptr: *mut *const ::libc::c_char,
font: *mut hb_font_t,
format: hb_buffer_serialize_format_t)
-> hb_bool_t;
}
pub type hb_buffer_message_func_t =
::std::option::Option<unsafe extern "C" fn(buffer: *mut hb_buffer_t,
font: *mut hb_font_t,
message: *const ::libc::c_char,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
extern "C" {
pub fn hb_buffer_set_message_func(buffer: *mut hb_buffer_t,
func: hb_buffer_message_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
pub type hb_font_get_glyph_func_t =
::std::option::Option<unsafe extern "C" fn(font: *mut hb_font_t,
font_data: *mut ::libc::c_void,
unicode: hb_codepoint_t,
variation_selector:
hb_codepoint_t,
glyph: *mut hb_codepoint_t,
user_data: *mut ::libc::c_void)
-> hb_bool_t>;
extern "C" {
pub fn hb_font_funcs_set_glyph_func(ffuncs: *mut hb_font_funcs_t,
func: hb_font_get_glyph_func_t,
user_data: *mut ::libc::c_void,
destroy: hb_destroy_func_t);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_set_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_set_create() -> *mut hb_set_t;
}
extern "C" {
pub fn hb_set_get_empty() -> *mut hb_set_t;
}
extern "C" {
pub fn hb_set_reference(set: *mut hb_set_t) -> *mut hb_set_t;
}
extern "C" {
pub fn hb_set_destroy(set: *mut hb_set_t);
}
extern "C" {
pub fn hb_set_set_user_data(set: *mut hb_set_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_set_get_user_data(set: *mut hb_set_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_set_allocation_successful(set: *const hb_set_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_set_clear(set: *mut hb_set_t);
}
extern "C" {
pub fn hb_set_is_empty(set: *const hb_set_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_set_has(set: *const hb_set_t, codepoint: hb_codepoint_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_set_add(set: *mut hb_set_t, codepoint: hb_codepoint_t);
}
extern "C" {
pub fn hb_set_add_range(set: *mut hb_set_t, first: hb_codepoint_t,
last: hb_codepoint_t);
}
extern "C" {
pub fn hb_set_del(set: *mut hb_set_t, codepoint: hb_codepoint_t);
}
extern "C" {
pub fn hb_set_del_range(set: *mut hb_set_t, first: hb_codepoint_t,
last: hb_codepoint_t);
}
extern "C" {
pub fn hb_set_is_equal(set: *const hb_set_t, other: *const hb_set_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_set_set(set: *mut hb_set_t, other: *const hb_set_t);
}
extern "C" {
pub fn hb_set_union(set: *mut hb_set_t, other: *const hb_set_t);
}
extern "C" {
pub fn hb_set_intersect(set: *mut hb_set_t, other: *const hb_set_t);
}
extern "C" {
pub fn hb_set_subtract(set: *mut hb_set_t, other: *const hb_set_t);
}
extern "C" {
pub fn hb_set_symmetric_difference(set: *mut hb_set_t,
other: *const hb_set_t);
}
extern "C" {
pub fn hb_set_invert(set: *mut hb_set_t);
}
extern "C" {
pub fn hb_set_get_population(set: *const hb_set_t) -> ::libc::c_uint;
}
extern "C" {
pub fn hb_set_get_min(set: *const hb_set_t) -> hb_codepoint_t;
}
extern "C" {
pub fn hb_set_get_max(set: *const hb_set_t) -> hb_codepoint_t;
}
extern "C" {
pub fn hb_set_next(set: *const hb_set_t, codepoint: *mut hb_codepoint_t)
-> hb_bool_t;
}
extern "C" {
pub fn hb_set_next_range(set: *const hb_set_t, first: *mut hb_codepoint_t,
last: *mut hb_codepoint_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_shape(font: *mut hb_font_t, buffer: *mut hb_buffer_t,
features: *const hb_feature_t,
num_features: ::libc::c_uint);
}
extern "C" {
pub fn hb_shape_full(font: *mut hb_font_t, buffer: *mut hb_buffer_t,
features: *const hb_feature_t,
num_features: ::libc::c_uint,
shaper_list: *const *const ::libc::c_char)
-> hb_bool_t;
}
extern "C" {
pub fn hb_shape_list_shapers() -> *mut *const ::libc::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hb_shape_plan_t {
_unused: [u8; 0],
}
extern "C" {
pub fn hb_shape_plan_create(face: *mut hb_face_t,
props: *const hb_segment_properties_t,
user_features: *const hb_feature_t,
num_user_features: ::libc::c_uint,
shaper_list: *const *const ::libc::c_char)
-> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_create_cached(face: *mut hb_face_t,
props: *const hb_segment_properties_t,
user_features: *const hb_feature_t,
num_user_features: ::libc::c_uint,
shaper_list:
*const *const ::libc::c_char)
-> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_create2(face: *mut hb_face_t,
props: *const hb_segment_properties_t,
user_features: *const hb_feature_t,
num_user_features: ::libc::c_uint,
coords: *const ::libc::c_int,
num_coords: ::libc::c_uint,
shaper_list: *const *const ::libc::c_char)
-> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_create_cached2(face: *mut hb_face_t,
props: *const hb_segment_properties_t,
user_features: *const hb_feature_t,
num_user_features: ::libc::c_uint,
coords: *const ::libc::c_int,
num_coords: ::libc::c_uint,
shaper_list:
*const *const ::libc::c_char)
-> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_get_empty() -> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_reference(shape_plan: *mut hb_shape_plan_t)
-> *mut hb_shape_plan_t;
}
extern "C" {
pub fn hb_shape_plan_destroy(shape_plan: *mut hb_shape_plan_t);
}
extern "C" {
pub fn hb_shape_plan_set_user_data(shape_plan: *mut hb_shape_plan_t,
key: *mut hb_user_data_key_t,
data: *mut ::libc::c_void,
destroy: hb_destroy_func_t,
replace: hb_bool_t) -> hb_bool_t;
}
extern "C" {
pub fn hb_shape_plan_get_user_data(shape_plan: *mut hb_shape_plan_t,
key: *mut hb_user_data_key_t)
-> *mut ::libc::c_void;
}
extern "C" {
pub fn hb_shape_plan_execute(shape_plan: *mut hb_shape_plan_t,
font: *mut hb_font_t,
buffer: *mut hb_buffer_t,
features: *const hb_feature_t,
num_features: ::libc::c_uint) -> hb_bool_t;
}
extern "C" {
pub fn hb_shape_plan_get_shaper(shape_plan: *mut hb_shape_plan_t)
-> *const ::libc::c_char;
}
extern "C" {
pub fn hb_version(major: *mut ::libc::c_uint, minor: *mut ::libc::c_uint,
micro: *mut ::libc::c_uint);
}
extern "C" {
pub fn hb_version_string() -> *const ::libc::c_char;
}
extern "C" {
pub fn hb_version_atleast(major: ::libc::c_uint, minor: ::libc::c_uint,
micro: ::libc::c_uint) -> hb_bool_t;
}