]> gitweb @ CieloNegro.org - Rakka.git/blob - Rakka/Plugin.hs
Farewell the dream of plug-in system... It's way too hard to implement nicely. Many...
[Rakka.git] / Rakka / Plugin.hs
1 module Rakka.Plugin
2     ( Plugin(..)
3     , RequestHandler
4     , RequestContext(..)
5     )
6     where
7
8 import           Data.Typeable
9 import           Network.HTTP.Lucu
10 import           Rakka.Wiki.Interpreter
11 import           Rakka.Storage
12 import           Rakka.SystemConfig
13
14
15 data Plugin
16     = Plugin {
17         pinInterpreters    :: ![Interpreter]
18       , pinRequestHandlers :: ![RequestHandler]
19       }
20     deriving (Typeable)
21
22
23 type RequestHandler
24     = RequestContext -> [String] -> IO (Maybe ResourceDef)
25
26
27 data RequestContext
28     = RequestContext {
29         rcStorage :: !Storage
30       , rcSysConf :: !SystemConfig
31       }