| Copyright | © 2020 Albert Krewinkel |
|---|---|
| License | MIT |
| Maintainer | Albert Krewinkel <tarleb+hslua@zeitkraut.de> |
| Stability | alpha |
| Portability | Portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Foreign.Lua.Call
Description
Marshaling and documenting Haskell functions.
Synopsis
- data HaskellFunction = HaskellFunction {
- callFunction :: Lua NumResults
- functionDoc :: Maybe FunctionDoc
- toHsFnPrecursor :: a -> HsFnPrecursor a
- toHsFnPrecursorWithStartIndex :: StackIndex -> a -> HsFnPrecursor a
- applyParameter :: HsFnPrecursor (a -> b) -> Parameter a -> HsFnPrecursor b
- returnResult :: HsFnPrecursor a -> FunctionResult a -> HaskellFunction
- data Parameter a = Parameter {}
- data FunctionResult a = FunctionResult {}
- type FunctionResults a = [FunctionResult a]
- (<#>) :: HsFnPrecursor (a -> b) -> Parameter a -> HsFnPrecursor b
- (=#>) :: HsFnPrecursor a -> FunctionResults a -> HaskellFunction
- (#?) :: HaskellFunction -> Text -> HaskellFunction
- data FunctionDoc = FunctionDoc {
- functionDescription :: Text
- parameterDocs :: [ParameterDoc]
- functionResultDocs :: [FunctionResultDoc]
- data ParameterDoc = ParameterDoc {
- parameterName :: Text
- parameterType :: Text
- parameterDescription :: Text
- parameterIsOptional :: Bool
- data FunctionResultDoc = FunctionResultDoc {
- functionResultType :: Text
- functionResultDescription :: Text
- render :: FunctionDoc -> Text
- pushHaskellFunction :: HaskellFunction -> Lua ()
- parameter :: Peeker a -> Text -> Text -> Text -> Parameter a
- optionalParameter :: Peeker a -> Text -> Text -> Text -> Parameter (Maybe a)
- functionResult :: Pusher a -> Text -> Text -> FunctionResults a
Documentation
data HaskellFunction Source #
Haskell equivallent to CFunction, i.e., function callable from Lua.
Constructors
| HaskellFunction | |
Fields
| |
toHsFnPrecursor :: a -> HsFnPrecursor a Source #
Create a HaskellFunction precursor from a pure function.
toHsFnPrecursorWithStartIndex :: StackIndex -> a -> HsFnPrecursor a Source #
applyParameter :: HsFnPrecursor (a -> b) -> Parameter a -> HsFnPrecursor b Source #
Partially apply a parameter.
returnResult :: HsFnPrecursor a -> FunctionResult a -> HaskellFunction Source #
Like , but returns only a single result.returnResult
Function parameter.
Constructors
| Parameter | |
Fields | |
data FunctionResult a Source #
Result of a call to a Haskell function.
Constructors
| FunctionResult | |
Fields | |
type FunctionResults a = [FunctionResult a] Source #
List of function results in the order in which they are returned in Lua.
Operators
(<#>) :: HsFnPrecursor (a -> b) -> Parameter a -> HsFnPrecursor b infixl 8 Source #
Inline version of .applyParameter
(=#>) :: HsFnPrecursor a -> FunctionResults a -> HaskellFunction infixl 8 Source #
Inline version of .returnResult
(#?) :: HaskellFunction -> Text -> HaskellFunction infixl 8 Source #
Inline version of .updateFunctionDescription
Documentation
data FunctionDoc Source #
Documentation for a Haskell function
Constructors
| FunctionDoc | |
Fields
| |
Instances
| Eq FunctionDoc Source # | |
Defined in Foreign.Lua.Call | |
| Ord FunctionDoc Source # | |
Defined in Foreign.Lua.Call Methods compare :: FunctionDoc -> FunctionDoc -> Ordering (<) :: FunctionDoc -> FunctionDoc -> Bool (<=) :: FunctionDoc -> FunctionDoc -> Bool (>) :: FunctionDoc -> FunctionDoc -> Bool (>=) :: FunctionDoc -> FunctionDoc -> Bool max :: FunctionDoc -> FunctionDoc -> FunctionDoc min :: FunctionDoc -> FunctionDoc -> FunctionDoc | |
| Show FunctionDoc Source # | |
Defined in Foreign.Lua.Call Methods showsPrec :: Int -> FunctionDoc -> ShowS show :: FunctionDoc -> String showList :: [FunctionDoc] -> ShowS | |
data ParameterDoc Source #
Documentation for function parameters.
Constructors
| ParameterDoc | |
Fields
| |
Instances
| Eq ParameterDoc Source # | |
Defined in Foreign.Lua.Call | |
| Ord ParameterDoc Source # | |
Defined in Foreign.Lua.Call Methods compare :: ParameterDoc -> ParameterDoc -> Ordering (<) :: ParameterDoc -> ParameterDoc -> Bool (<=) :: ParameterDoc -> ParameterDoc -> Bool (>) :: ParameterDoc -> ParameterDoc -> Bool (>=) :: ParameterDoc -> ParameterDoc -> Bool max :: ParameterDoc -> ParameterDoc -> ParameterDoc min :: ParameterDoc -> ParameterDoc -> ParameterDoc | |
| Show ParameterDoc Source # | |
Defined in Foreign.Lua.Call Methods showsPrec :: Int -> ParameterDoc -> ShowS show :: ParameterDoc -> String showList :: [ParameterDoc] -> ShowS | |
data FunctionResultDoc Source #
Documentation for the result of a function.
Constructors
| FunctionResultDoc | |
Fields
| |
Instances
| Eq FunctionResultDoc Source # | |
Defined in Foreign.Lua.Call Methods (==) :: FunctionResultDoc -> FunctionResultDoc -> Bool (/=) :: FunctionResultDoc -> FunctionResultDoc -> Bool | |
| Ord FunctionResultDoc Source # | |
Defined in Foreign.Lua.Call Methods compare :: FunctionResultDoc -> FunctionResultDoc -> Ordering (<) :: FunctionResultDoc -> FunctionResultDoc -> Bool (<=) :: FunctionResultDoc -> FunctionResultDoc -> Bool (>) :: FunctionResultDoc -> FunctionResultDoc -> Bool (>=) :: FunctionResultDoc -> FunctionResultDoc -> Bool max :: FunctionResultDoc -> FunctionResultDoc -> FunctionResultDoc min :: FunctionResultDoc -> FunctionResultDoc -> FunctionResultDoc | |
| Show FunctionResultDoc Source # | |
Defined in Foreign.Lua.Call Methods showsPrec :: Int -> FunctionResultDoc -> ShowS show :: FunctionResultDoc -> String showList :: [FunctionResultDoc] -> ShowS | |
render :: FunctionDoc -> Text Source #
Pushing to Lua
pushHaskellFunction :: HaskellFunction -> Lua () Source #
Convenience functions
Arguments
| :: Peeker a | method to retrieve value from Lua |
| -> Text | expected Lua type |
| -> Text | parameter name |
| -> Text | parameter description |
| -> Parameter a |
Creates a parameter.
Arguments
| :: Peeker a | method to retrieve the value from Lua |
| -> Text | expected Lua type |
| -> Text | parameter name |
| -> Text | parameter description |
| -> Parameter (Maybe a) |
Creates an optional parameter.
Arguments
| :: Pusher a | method to push the Haskell result to Lua |
| -> Text | Lua type of result |
| -> Text | result description |
| -> FunctionResults a |
Creates a function result.