-- GENERATED by C->Haskell Compiler, version 0.28.7 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/XlsxWriter/Utility.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
-- | https://libxlsxwriter.github.io/utility_8h.html
module XlsxWriter.Utility where
import qualified Foreign.C.String as C2HSImp
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import qualified System.IO.Unsafe as C2HSImp





import Foreign.C
import XlsxWriter.Common
{-# LINE 8 "src/XlsxWriter/Utility.chs" #-}



{-# LINE 10 "src/XlsxWriter/Utility.chs" #-}


lxw_datetime_to_excel_datetime :: (DateTimePtr) -> (Double)
lxw_datetime_to_excel_datetime a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = id a1} in 
  lxw_datetime_to_excel_datetime'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 13 "src/XlsxWriter/Utility.chs" #-}



lxw_strerror :: (Error) -> (String)
lxw_strerror a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = (fromIntegral . fromEnum) a1} in 
  lxw_strerror'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 17 "src/XlsxWriter/Utility.chs" #-}


{-- TODO: figure out version mismatch; header file has this function

double lxw_datetime_to_excel_date_epoch(lxw_datetime *datetime, uint8_t date_1904);

but doxygen website has this function:

double lxw_unixtime_to_excel_date(int64_t unixtime)

--}

foreign import ccall safe "XlsxWriter/Utility.chs.h lxw_datetime_to_excel_datetime"
  lxw_datetime_to_excel_datetime'_ :: ((DateTimePtr) -> (IO C2HSImp.CDouble))

foreign import ccall safe "XlsxWriter/Utility.chs.h lxw_strerror"
  lxw_strerror'_ :: (C2HSImp.CInt -> (IO (C2HSImp.Ptr C2HSImp.CChar)))