module Database.DuckDB.FFI.CastFunctions (
c_duckdb_create_cast_function,
c_duckdb_cast_function_set_source_type,
c_duckdb_cast_function_set_target_type,
c_duckdb_cast_function_set_implicit_cast_cost,
c_duckdb_cast_function_set_function,
c_duckdb_cast_function_set_extra_info,
c_duckdb_cast_function_get_extra_info,
c_duckdb_cast_function_get_cast_mode,
c_duckdb_cast_function_set_error,
c_duckdb_cast_function_set_row_error,
c_duckdb_register_cast_function,
c_duckdb_destroy_cast_function,
) where
import Data.Int (Int64)
import Database.DuckDB.FFI.Types
import Foreign.C.String (CString)
import Foreign.C.Types (CInt (..))
import Foreign.Ptr (Ptr)
foreign import ccall safe "duckdb_create_cast_function"
c_duckdb_create_cast_function :: IO DuckDBCastFunction
foreign import ccall safe "duckdb_cast_function_set_source_type"
c_duckdb_cast_function_set_source_type :: DuckDBCastFunction -> DuckDBLogicalType -> IO ()
foreign import ccall safe "duckdb_cast_function_set_target_type"
c_duckdb_cast_function_set_target_type :: DuckDBCastFunction -> DuckDBLogicalType -> IO ()
foreign import ccall safe "duckdb_cast_function_set_implicit_cast_cost"
c_duckdb_cast_function_set_implicit_cast_cost :: DuckDBCastFunction -> Int64 -> IO ()
foreign import ccall safe "duckdb_cast_function_set_function"
c_duckdb_cast_function_set_function :: DuckDBCastFunction -> DuckDBCastFunctionFun -> IO ()
foreign import ccall safe "duckdb_cast_function_set_extra_info"
:: DuckDBCastFunction -> Ptr () -> DuckDBDeleteCallback -> IO ()
foreign import ccall safe "duckdb_cast_function_get_extra_info"
:: DuckDBFunctionInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_cast_function_get_cast_mode"
c_duckdb_cast_function_get_cast_mode :: DuckDBFunctionInfo -> IO DuckDBCastMode
foreign import ccall safe "duckdb_cast_function_set_error"
c_duckdb_cast_function_set_error :: DuckDBFunctionInfo -> CString -> IO ()
foreign import ccall safe "duckdb_cast_function_set_row_error"
c_duckdb_cast_function_set_row_error :: DuckDBFunctionInfo -> CString -> DuckDBIdx -> DuckDBVector -> IO ()
foreign import ccall safe "duckdb_register_cast_function"
c_duckdb_register_cast_function :: DuckDBConnection -> DuckDBCastFunction -> IO DuckDBState
foreign import ccall safe "duckdb_destroy_cast_function"
c_duckdb_destroy_cast_function :: Ptr DuckDBCastFunction -> IO ()