module Data.PhoneNumber.FFI (
PhoneNumberRef(..),
PhoneNumberUtil(..),
c_phone_number_ctor,
c_phone_number_dtor,
c_phone_number_util_get_instance,
c_phone_number_util_parse,
c_phone_number_convert_alpha_characters_in_number,
c_phone_number_has_country_code,
c_phone_number_has_national_number,
c_phone_number_has_extension,
c_phone_number_get_country_code,
c_phone_number_get_national_number,
c_phone_number_get_extension,
) where
import Foreign.C.String (CString)
import Foreign.C.Types (CInt (..), CULLong (..))
import Foreign.ForeignPtr (ForeignPtr)
import Foreign.Ptr (FunPtr, Ptr)
data PhoneNumberRef = PhoneNumberRef { unPhoneNumberRef :: ForeignPtr PhoneNumberRef }
deriving Show
data PhoneNumberUtil = PhoneNumberUtil { unPhoneNumberUtil :: Ptr PhoneNumberUtil }
deriving Show
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_ctor"
c_phone_number_ctor
:: IO (Ptr PhoneNumberRef)
foreign import ccall unsafe "c-phone-numbers.h &_c_phone_number_dtor"
c_phone_number_dtor
:: FunPtr (Ptr PhoneNumberRef -> IO ())
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_util_get_instance"
c_phone_number_util_get_instance ::
IO (Ptr PhoneNumberUtil)
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_util_parse"
c_phone_number_util_parse
:: Ptr PhoneNumberUtil
-> CString
-> CInt
-> CString
-> CInt
-> Ptr PhoneNumberRef
-> IO CInt
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_convert_alpha_characters_in_number"
c_phone_number_convert_alpha_characters_in_number
:: Ptr PhoneNumberUtil
-> CString
-> CInt
-> IO ()
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_has_country_code"
c_phone_number_has_country_code
:: Ptr PhoneNumberRef
-> IO Bool
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_has_national_number"
c_phone_number_has_national_number
:: Ptr PhoneNumberRef
-> IO Bool
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_has_extension"
c_phone_number_has_extension
:: Ptr PhoneNumberRef
-> IO Bool
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_get_country_code"
c_phone_number_get_country_code
:: Ptr PhoneNumberRef
-> IO CULLong
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_get_national_number"
c_phone_number_get_national_number
:: Ptr PhoneNumberRef
-> IO CULLong
foreign import ccall unsafe "c-phone-numbers.h _c_phone_number_get_extension"
c_phone_number_get_extension
:: Ptr PhoneNumberRef
-> IO CString