module Main (main) where import Foreign import Foreign.C import GarnetRs import GarnetRs.Safe import HsBindgen.Runtime.Marshal import HsBindgen.Runtime.PtrConst main :: IO () main = do withCString "Haskell" $ hello . unsafeFromPtr alloca \ptr -> do writeRaw ptr T{a = CBool 1, b = 42} hello_struct (unsafeFromPtr ptr) alloca \ptr -> do writeRaw ptr (Shape (Shape_Tag 0) (set_shape_body_circle (Circle_Body 3.14))) hello_shape (unsafeFromPtr ptr) alloca \ptr -> do writeRaw ptr (Shape (Shape_Tag 1) (set_shape_body_rectangle (Rectangle_Body 10.0 5.0))) hello_shape (unsafeFromPtr ptr)