{-# LANGUAGE ForeignFunctionInterface, TypeFamilies,
  MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances,
  EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}
module GDAL.OGRSimpleCurve.RawType where
import Foreign.Ptr
import FFICXX.Runtime.Cast

data RawOGRSimpleCurve

newtype OGRSimpleCurve = OGRSimpleCurve (Ptr RawOGRSimpleCurve)
                           deriving (OGRSimpleCurve -> OGRSimpleCurve -> Bool
(OGRSimpleCurve -> OGRSimpleCurve -> Bool)
-> (OGRSimpleCurve -> OGRSimpleCurve -> Bool) -> Eq OGRSimpleCurve
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
== :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
$c/= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
/= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
Eq, Eq OGRSimpleCurve
Eq OGRSimpleCurve
-> (OGRSimpleCurve -> OGRSimpleCurve -> Ordering)
-> (OGRSimpleCurve -> OGRSimpleCurve -> Bool)
-> (OGRSimpleCurve -> OGRSimpleCurve -> Bool)
-> (OGRSimpleCurve -> OGRSimpleCurve -> Bool)
-> (OGRSimpleCurve -> OGRSimpleCurve -> Bool)
-> (OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve)
-> (OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve)
-> Ord OGRSimpleCurve
OGRSimpleCurve -> OGRSimpleCurve -> Bool
OGRSimpleCurve -> OGRSimpleCurve -> Ordering
OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OGRSimpleCurve -> OGRSimpleCurve -> Ordering
compare :: OGRSimpleCurve -> OGRSimpleCurve -> Ordering
$c< :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
< :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
$c<= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
<= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
$c> :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
> :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
$c>= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
>= :: OGRSimpleCurve -> OGRSimpleCurve -> Bool
$cmax :: OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve
max :: OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve
$cmin :: OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve
min :: OGRSimpleCurve -> OGRSimpleCurve -> OGRSimpleCurve
Ord, Int -> OGRSimpleCurve -> ShowS
[OGRSimpleCurve] -> ShowS
OGRSimpleCurve -> String
(Int -> OGRSimpleCurve -> ShowS)
-> (OGRSimpleCurve -> String)
-> ([OGRSimpleCurve] -> ShowS)
-> Show OGRSimpleCurve
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OGRSimpleCurve -> ShowS
showsPrec :: Int -> OGRSimpleCurve -> ShowS
$cshow :: OGRSimpleCurve -> String
show :: OGRSimpleCurve -> String
$cshowList :: [OGRSimpleCurve] -> ShowS
showList :: [OGRSimpleCurve] -> ShowS
Show)

instance () => FPtr (OGRSimpleCurve) where
        type Raw OGRSimpleCurve = RawOGRSimpleCurve
        get_fptr :: OGRSimpleCurve -> Ptr (Raw OGRSimpleCurve)
get_fptr (OGRSimpleCurve Ptr RawOGRSimpleCurve
ptr) = Ptr (Raw OGRSimpleCurve)
Ptr RawOGRSimpleCurve
ptr
        cast_fptr_to_obj :: Ptr (Raw OGRSimpleCurve) -> OGRSimpleCurve
cast_fptr_to_obj = Ptr (Raw OGRSimpleCurve) -> OGRSimpleCurve
Ptr RawOGRSimpleCurve -> OGRSimpleCurve
OGRSimpleCurve