forest/forest-server/src/Forest/Server/TreeModule.hs

25 lines
572 B
Haskell

{-# LANGUAGE MultiParamTypeClasses #-}
module Forest.Server.TreeModule
( TreeModule(..)
, ModuleConstructor
) where
import qualified Data.Text as T
import Forest.Node
class TreeModule a r where
edit :: a r -> Path -> T.Text -> IO (Maybe r)
edit _ _ _ = pure Nothing
delete :: a r -> Path -> IO (Maybe r)
delete _ _ = pure Nothing
reply :: a r -> Path -> T.Text -> IO (Maybe r)
reply _ _ _ = pure Nothing
act :: a r -> Path -> IO (Maybe r)
act _ _ = pure Nothing
type ModuleConstructor a = (Node -> IO ()) -> (a -> IO ()) -> IO ()