{-# options_haddock prune, hide #-}
module Ribosome.Examples.Example3 where
import qualified Data.Text.IO as Text
import Ribosome
import Ribosome.Api
ping :: Handler r Text
ping :: forall (r :: EffectRow). Handler r Text
ping =
Text -> Sem (Stop Report : r) Text
forall (f :: * -> *) a. Applicative f => a -> f a
pure Text
"Ping"
main :: IO ()
main :: IO ()
main =
PluginConfig ()
-> [RpcHandler (EmbedStack ())] -> Sem (EmbedStack ()) () -> IO ()
runEmbedPluginIO_ PluginConfig ()
"ping-plugin" [RpcName
-> Execution
-> Handler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
Text
-> RpcHandler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
forall (r :: EffectRow) h.
HandlerCodec h r =>
RpcName -> Execution -> h -> RpcHandler r
rpcFunction RpcName
"Ping" Execution
Sync Handler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
Text
forall (r :: EffectRow). Handler r Text
ping] do
Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
()
-> Sem
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
()
forall (r :: EffectRow) a.
Member (Resumable RpcError Rpc) r =>
Sem (Rpc : r) a -> Sem r ()
ignoreRpcError do
IO ()
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
()
forall (m :: * -> *) (r :: EffectRow) a.
Member (Embed m) r =>
m a -> Sem r a
embed (IO ()
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
())
-> (Text -> IO ())
-> Text
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> IO ()
Text.putStrLn (Text
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
())
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
Text
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Text
-> [Object]
-> Sem
'[Rpc, Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Reader (CustomConfig ()), Log,
Tagged "stderr" Log, Tagged "file" Log, Reader LogConfig,
Reader HostConfig, Time Time Date, Error BootError,
UninterruptibleMaskIO, UninterruptibleMaskIO, GatesIO, Race, Async,
Resource, Embed IO, Final IO]
Text
forall a (r :: EffectRow).
(Member Rpc r, MsgpackDecode a) =>
Text -> [Object] -> Sem r a
nvimCallFunction Text
"Ping" []