{-# LANGUAGE CApiFFI #-} module OpenCascade.TopTools.ShapeMapHasher ( hash , isEqual ) where import qualified OpenCascade.TopoDS.Types as TopoDS import Foreign.Ptr (Ptr) import Foreign.C (CInt (..), CBool (..)) import OpenCascade.Internal.Bool (cBoolToBool) foreign import capi unsafe "hs_TopTools_ShapeMapHasher.h hs_TopTools_ShapeMapHasher_hash" rawHash :: Ptr TopoDS.Shape -> IO (CInt) hash :: Ptr TopoDS.Shape -> IO Int hash :: Ptr Shape -> IO Int hash Ptr Shape s = CInt -> Int forall a b. (Integral a, Num b) => a -> b fromIntegral (CInt -> Int) -> IO CInt -> IO Int forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr Shape -> IO CInt rawHash Ptr Shape s foreign import capi unsafe "hs_TopTools_ShapeMapHasher.h hs_TopTools_ShapeMapHasher_isEqual" rawIsEqual :: Ptr TopoDS.Shape -> Ptr TopoDS.Shape -> IO (CBool) isEqual :: Ptr TopoDS.Shape -> Ptr TopoDS.Shape -> IO Bool isEqual :: Ptr Shape -> Ptr Shape -> IO Bool isEqual Ptr Shape a Ptr Shape b = CBool -> Bool cBoolToBool (CBool -> Bool) -> IO CBool -> IO Bool forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr Shape -> Ptr Shape -> IO CBool rawIsEqual Ptr Shape a Ptr Shape b