garnet/haskell/exe/Main.hs
2026-02-19 16:29:52 +00:00

22 lines
650 B
Haskell

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)