mirror of
https://github.com/extism/extism.git
synced 2026-04-23 03:00:11 -04:00
23 lines
617 B
Haskell
23 lines
617 B
Haskell
module Main where
|
|
|
|
import System.Exit (exitFailure, exitSuccess)
|
|
import qualified Data.ByteString as B
|
|
import Extism
|
|
import Extism.Manifest
|
|
|
|
try f (Right x) = f x
|
|
try f (Left (ErrorMessage msg)) = do
|
|
_ <- putStrLn msg
|
|
exitFailure
|
|
|
|
handlePlugin plugin = do
|
|
res <- Extism.call plugin "count_vowels" (Extism.toByteString "this is a test")
|
|
try (\bs -> do
|
|
_ <- putStrLn (Extism.fromByteString bs)
|
|
_ <- Extism.free plugin
|
|
exitSuccess) res
|
|
|
|
main = do
|
|
context <- Extism.newContext ()
|
|
plugin <- Extism.pluginFromManifest context (manifest [wasmFile "../wasm/code.wasm"]) False
|
|
try handlePlugin plugin |