extism-1.2.1.0: Extism bindings
Safe HaskellNone
LanguageHaskell2010

Extism

Description

A Haskell Extism host

Requires a libextism installation, see https://extism.org/docs/install

Synopsis

Documentation

data Manifest #

Instances

Instances details
Show Manifest 
Instance details

Defined in Extism.Manifest

PluginInput Manifest Source # 
Instance details

Defined in Extism

Eq Manifest 
Instance details

Defined in Extism.Manifest

JSON Manifest 
Instance details

Defined in Extism.Manifest

data Function Source #

Host function, see hostFunction

Constructors

Function (ForeignPtr ExtismFunction) (StablePtr ()) 

Instances

Instances details
Eq Function Source # 
Instance details

Defined in Extism

newtype Plugin Source #

Plugins can be used to call WASM function

Constructors

Plugin (ForeignPtr ExtismPlugin) 

Instances

Instances details
Show Plugin Source # 
Instance details

Defined in Extism

Eq Plugin Source # 
Instance details

Defined in Extism

Methods

(==) :: Plugin -> Plugin -> Bool #

(/=) :: Plugin -> Plugin -> Bool #

newtype CancelHandle Source #

Cancellation handle for Plugins

Constructors

CancelHandle (Ptr ExtismCancelHandle) 

Instances

Instances details
Show CancelHandle Source # 
Instance details

Defined in Extism

Eq CancelHandle Source # 
Instance details

Defined in Extism

data LogLevel Source #

Log level

Instances

Instances details
Show LogLevel Source # 
Instance details

Defined in Extism

Eq LogLevel Source # 
Instance details

Defined in Extism

newtype Error Source #

Extism error

Constructors

ExtismError String 

Instances

Instances details
Show Error Source # 
Instance details

Defined in Extism.Encoding

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

Eq Error Source # 
Instance details

Defined in Extism.Encoding

Methods

(==) :: Error -> Error -> Bool #

(/=) :: Error -> Error -> Bool #

type Result a = Either Error a Source #

Result type

extismVersion :: () -> IO String Source #

Get the Extism version string

newPlugin :: PluginInput a => a -> [Function] -> Bool -> IO (Result Plugin) Source #

Create a Plugin from a WASM module, useWasi determines if WASI should | be linked

isValid :: Plugin -> IO Bool Source #

Check if a Plugin is valid

setConfig :: Plugin -> [(String, Maybe String)] -> IO Bool Source #

Set configuration values for a plugin

setLogFile :: String -> LogLevel -> IO Bool Source #

Set the log file and level, this is a global configuration

functionExists :: Plugin -> String -> IO Bool Source #

Check if a function exists in the given plugin

call :: (ToBytes a, FromBytes b) => Plugin -> String -> a -> IO (Result b) Source #

cancelHandle :: Plugin -> IO CancelHandle Source #

Create a new CancelHandle that can be used to cancel a running plugin | from another thread.

cancel :: CancelHandle -> IO Bool Source #

Cancel a running plugin using a CancelHandle

class ToBytes a where Source #

Methods

toBytes :: a -> ByteString Source #

Instances

Instances details
ToBytes Int32 Source # 
Instance details

Defined in Extism.Encoding

ToBytes Int64 Source # 
Instance details

Defined in Extism.Encoding

ToBytes Word32 Source # 
Instance details

Defined in Extism.Encoding

ToBytes Word64 Source # 
Instance details

Defined in Extism.Encoding

ToBytes ByteString Source # 
Instance details

Defined in Extism.Encoding

ToBytes () Source # 
Instance details

Defined in Extism.Encoding

Methods

toBytes :: () -> ByteString Source #

ToBytes Double Source # 
Instance details

Defined in Extism.Encoding

ToBytes Float Source # 
Instance details

Defined in Extism.Encoding

Data a => ToBytes (JSON a) Source # 
Instance details

Defined in Extism.Encoding

Methods

toBytes :: JSON a -> ByteString Source #

ToBytes [Char] Source # 
Instance details

Defined in Extism.Encoding

Methods

toBytes :: [Char] -> ByteString Source #

class FromBytes a where Source #

Instances

Instances details
FromBytes Int32 Source # 
Instance details

Defined in Extism.Encoding

FromBytes Int64 Source # 
Instance details

Defined in Extism.Encoding

FromBytes Word32 Source # 
Instance details

Defined in Extism.Encoding

FromBytes Word64 Source # 
Instance details

Defined in Extism.Encoding

FromBytes ByteString Source # 
Instance details

Defined in Extism.Encoding

FromBytes () Source # 
Instance details

Defined in Extism.Encoding

FromBytes Double Source # 
Instance details

Defined in Extism.Encoding

FromBytes Float Source # 
Instance details

Defined in Extism.Encoding

Data a => FromBytes (JSON a) Source # 
Instance details

Defined in Extism.Encoding

FromBytes [Char] Source # 
Instance details

Defined in Extism.Encoding

newtype JSON x Source #

Constructors

JSON x 

Instances

Instances details
Data a => FromBytes (JSON a) Source # 
Instance details

Defined in Extism.Encoding

Data a => ToBytes (JSON a) Source # 
Instance details

Defined in Extism.Encoding

Methods

toBytes :: JSON a -> ByteString Source #

class PluginInput a where Source #

Defines types that can be used to pass Wasm data into a plugin

Instances

Instances details
PluginInput ByteString Source # 
Instance details

Defined in Extism

PluginInput Manifest Source # 
Instance details

Defined in Extism