{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} module Azure.Functions.Function where import Azure.Functions.Bindings.Class import Data.Aeson (Value) import Data.Functor ((<&>)) import Data.Map.Strict (Map) import qualified Data.Map.Strict as Map import Data.ProtoLens.Runtime.Data.ProtoLens as PL import Data.Text (Text) import GHC.Generics (Generic) import Lens.Family ((&), (.~), (^.)) import Proto.FunctionRpc import qualified Proto.FunctionRpc_Fields as Fields import Proto.FunctionRpc_Helpers (failureStatus, rpcLogError, rpcLogInfo, toResponse, toResponseLogError') data Function env i o = Function { inBinding :: InBinding i , outBinding :: OutBinding o , initEnv :: IO env , func :: env -> i -> IO o }