1
2
3
/* automatically generated by rust-bindgen 0.57.0 */

pub const CHINESE_MODE : u32 = 1 ; pub const SYMBOL_MODE : u32 = 0 ; pub const FULLSHAPE_MODE : u32 = 1 ; pub const HALFSHAPE_MODE : u32 = 0 ; pub const MIN_SELKEY : u32 = 1 ; pub const MAX_SELKEY : u32 = 10 ; pub const CHEWING_LOG_VERBOSE : u32 = 1 ; pub const CHEWING_LOG_DEBUG : u32 = 2 ; pub const CHEWING_LOG_INFO : u32 = 3 ; pub const CHEWING_LOG_WARN : u32 = 4 ; pub const CHEWING_LOG_ERROR : u32 = 5 ; pub const HSU_SELKEY_TYPE1 : u32 = 1 ; pub const HSU_SELKEY_TYPE2 : u32 = 2 ; pub const KEYSTROKE_IGNORE : u32 = 1 ; pub const KEYSTROKE_COMMIT : u32 = 2 ; pub const KEYSTROKE_BELL : u32 = 4 ; pub const KEYSTROKE_ABSORB : u32 = 8 ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct IntervalType { # [doc = "< starting position of certain interval"] pub from : :: std :: os :: raw :: c_int , # [doc = "< ending position of certain interval"] pub to : :: std :: os :: raw :: c_int , } # [test] fn bindgen_test_layout_IntervalType () { assert_eq ! (:: std :: mem :: size_of :: < IntervalType > () , 8usize , concat ! ("Size of: " , stringify ! (IntervalType))) ; assert_eq ! (:: std :: mem :: align_of :: < IntervalType > () , 4usize , concat ! ("Alignment of " , stringify ! (IntervalType))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < IntervalType > ())) . from as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (IntervalType) , "::" , stringify ! (from))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < IntervalType > ())) . to as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (IntervalType) , "::" , stringify ! (to))) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct ChewingContext { _unused : [u8 ; 0] , } extern "C" { # [doc = " @brief Handle the input key stroke: Space"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Space (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Escape"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Esc (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Enter/Return"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Enter (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Delete"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Del (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Backspace"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Backspace (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Tab"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Tab (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Shift + Left"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_ShiftLeft (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Left"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Left (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Shift + Right"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_ShiftRight (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Right"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Right (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Up"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Up (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Home"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Home (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: End"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_End (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: PageUp"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_PageUp (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: PageDown"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_PageDown (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Down"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Down (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Capslock"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_Capslock (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: casual key"] # [doc = " @param ctx Chewing IM context"] # [doc = " @param key scan code of key stroke"] pub fn chewing_handle_Default (ctx : * mut ChewingContext , key : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Ctrl + Number-key"] # [doc = " @param ctx Chewing IM context"] # [doc = " @param key scan code of number key"] pub fn chewing_handle_CtrlNum (ctx : * mut ChewingContext , key : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Shift + Space"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_ShiftSpace (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: double Tab"] # [doc = " @param ctx Chewing IM context"] pub fn chewing_handle_DblTab (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Handle the input key stroke: Numlock (keypad)"] # [doc = " @param ctx Chewing IM context"] # [doc = " @param key scan code of number key"] pub fn chewing_handle_Numlock (ctx : * mut ChewingContext , key : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Create new handle of the instance for Chewing IM"] # [doc = " @see chewing_delete()"] pub fn chewing_new () -> * mut ChewingContext ; } extern "C" { # [doc = " @brief Release the handle and internal memory by given Chewing instance"] # [doc = " @see chewing_new()"] # [doc = ""] # [doc = " @param ctx Chewing IM context"] pub fn chewing_delete (ctx : * mut ChewingContext) ; } extern "C" { # [doc = " @brief Release memory allocated used by given pointer used in APIs"] pub fn chewing_free (arg1 : * mut :: std :: os :: raw :: c_void) ; } extern "C" { # [doc = " @brief Reset all settings"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @return If successed than return 0"] pub fn chewing_Reset (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set keyboard mapping type"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param kbtype index number of keyboard mapping type from KBStr2Num"] # [doc = " @return If successed then return 0"] pub fn chewing_set_KBType (ctx : * mut ChewingContext , kbtype : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Get keyboard mapping type"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @return If successed then return keyboard mapping type from KBStr2Num"] pub fn chewing_get_KBType (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the operating language mode of Chewing IM."] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode CHINESE_MODE or ENGLISH_MODE"] pub fn chewing_set_ChiEngMode (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get current operating language mode: English / Chinese"] # [doc = ""] # [doc = " @param ctx"] # [doc = ""] # [doc = " @return CHINESE_MODE or ENGLISH_MODE"] pub fn chewing_get_ChiEngMode (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the shape mode of output symbols: full-shape / half-shape"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode FULLSHAPE_MODE or HALFSHAPE_MODE"] pub fn chewing_set_ShapeMode (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get current shape mode of output symbols"] # [doc = ""] # [doc = " @param ctx"] # [doc = ""] # [doc = " @return FULLSHAPE_MODE or HALFSHAPE_MODE"] pub fn chewing_get_ShapeMode (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the number of selection candidate per page"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param n number of selection candidate"] pub fn chewing_set_candPerPage (ctx : * mut ChewingContext , n : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the number of selection candidate per page"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_candPerPage (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the maximum length of Chinese symbols"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param n maximum length"] pub fn chewing_set_maxChiSymbolLen (ctx : * mut ChewingContext , n : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the maximum length of Chinese symbols"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_maxChiSymbolLen (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the key sequence for selecting phrases"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param selkeys"] # [doc = " @param len"] pub fn chewing_set_selKey (ctx : * mut ChewingContext , selkeys : * const :: std :: os :: raw :: c_int , len : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the key sequence for selecting phrases"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_selKey (ctx : * const ChewingContext) -> * mut :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the direction of adding new user-defined phrases"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param direction"] pub fn chewing_set_addPhraseDirection (ctx : * mut ChewingContext , direction : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the direction of adding new user-defined phrases"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_addPhraseDirection (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the behavior whether if space key is regarded as selection key"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode"] pub fn chewing_set_spaceAsSelection (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the behavior if space key is regarded as selection key or not"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_spaceAsSelection (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the behavior whether if Escape key should clean all buffer"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode"] pub fn chewing_set_escCleanAllBuf (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the behavior whether if Escape key should clean all buffer"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_escCleanAllBuf (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the behavior of automatically shifting cursor after selection"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode"] pub fn chewing_set_autoShiftCur (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the behavior of automatically shifting cursor after selection"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_autoShiftCur (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the operating mode during easy symbol input"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode"] pub fn chewing_set_easySymbolInput (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the operating mode during easy symbol input"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_easySymbolInput (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Set the behavior for phrase choice to be rearward or not"] # [doc = ""] # [doc = " @param ctx"] # [doc = " @param mode"] pub fn chewing_set_phraseChoiceRearward (ctx : * mut ChewingContext , mode : :: std :: os :: raw :: c_int) ; } extern "C" { # [doc = " @brief Get the behavior for phrase choice to be rearward or not"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_phraseChoiceRearward (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Get phonetic sequence in Chewing internal state machine"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_phoneSeq (ctx : * const ChewingContext) -> * mut :: std :: os :: raw :: c_ushort ; } extern "C" { # [doc = " @brief Get the length of phonetic sequence in Chewing internal state machine"] # [doc = ""] # [doc = " @param ctx"] pub fn chewing_get_phoneSeqLen (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_set_logger (ctx : * mut ChewingContext , logger : :: std :: option :: Option < unsafe extern "C" fn (data : * mut :: std :: os :: raw :: c_void , level : :: std :: os :: raw :: c_int , fmt : * const :: std :: os :: raw :: c_char , ...) > , data : * mut :: std :: os :: raw :: c_void) ; } extern "C" { pub fn chewing_userphrase_enumerate (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_userphrase_has_next (ctx : * mut ChewingContext , phrase_len : * mut :: std :: os :: raw :: c_uint , bopomofo_len : * mut :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_userphrase_get (ctx : * mut ChewingContext , phrase_buf : * mut :: std :: os :: raw :: c_char , phrase_len : :: std :: os :: raw :: c_uint , bopomofo_buf : * mut :: std :: os :: raw :: c_char , bopomofo_len : :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_userphrase_add (ctx : * mut ChewingContext , phrase_buf : * const :: std :: os :: raw :: c_char , bopomofo_buf : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_userphrase_remove (ctx : * mut ChewingContext , phrase_buf : * const :: std :: os :: raw :: c_char , bopomofo_buf : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_userphrase_lookup (ctx : * mut ChewingContext , phrase_buf : * const :: std :: os :: raw :: c_char , bopomofo_buf : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_first (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_last (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_has_next (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_has_prev (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_next (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_list_prev (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_commit_preedit_buf (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_clean_preedit_buf (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_clean_bopomofo_buf (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Chewing the state for input context during commit process"] # [doc = " @param ctx handle to Chewing IM context"] # [doc = " @retval TRUE if its currnet input state is at the \"end-of-a-char\""] pub fn chewing_commit_Check (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { # [doc = " @brief Get current commit string regardless of current input state"] # [doc = " @param ctx handle to Chewing IM context"] # [doc = ""] # [doc = " Always returns a char pointer, caller must free it."] pub fn chewing_commit_String (ctx : * const ChewingContext) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_commit_String_static (ctx : * const ChewingContext) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_buffer_String (ctx : * const ChewingContext) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_buffer_String_static (ctx : * const ChewingContext) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_buffer_Check (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_buffer_Len (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_bopomofo_String_static (ctx : * const ChewingContext) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_bopomofo_Check (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cursor_Current (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_CheckDone (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_TotalPage (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_ChoicePerPage (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_TotalChoice (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_CurrentPage (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_Enumerate (ctx : * mut ChewingContext) ; } extern "C" { pub fn chewing_cand_hasNext (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_String (ctx : * mut ChewingContext) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_cand_String_static (ctx : * mut ChewingContext) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_cand_string_by_index (ctx : * mut ChewingContext , index : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_cand_string_by_index_static (ctx : * mut ChewingContext , index : :: std :: os :: raw :: c_int) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_cand_choose_by_index (ctx : * mut ChewingContext , index : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_open (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_cand_close (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_interval_Enumerate (ctx : * mut ChewingContext) ; } extern "C" { pub fn chewing_interval_hasNext (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_interval_Get (ctx : * mut ChewingContext , it : * mut IntervalType) ; } extern "C" { pub fn chewing_aux_Check (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_aux_Length (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_aux_String (ctx : * const ChewingContext) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_aux_String_static (ctx : * const ChewingContext) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_keystroke_CheckIgnore (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_keystroke_CheckAbsorb (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_kbtype_Total (ctx : * const ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_kbtype_Enumerate (ctx : * mut ChewingContext) ; } extern "C" { pub fn chewing_kbtype_hasNext (ctx : * mut ChewingContext) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn chewing_kbtype_String (ctx : * mut ChewingContext) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn chewing_kbtype_String_static (ctx : * mut ChewingContext) -> * const :: std :: os :: raw :: c_char ; }