{-# options_haddock prune #-}

-- |Tmux Helpers, Internal
module Helic.Tmux where

import qualified Polysemy.Process as Process
import Polysemy.Process (Process)
import Polysemy.Process.Effect.Process (withProcess)

import Helic.Data.Event (Event (Event))

sendToTmux ::
   o e resource r .
  Members [Scoped resource (Process ByteString o e), Log] r =>
  Event ->
  Sem r ()
sendToTmux :: Event -> Sem r ()
sendToTmux (Event InstanceName
_ AgentId
_ Time
_ Text
text) =
  Sem (Process ByteString o e : r) () -> Sem r ()
forall resource i o e (r :: EffectRow).
Member (Scoped resource (Process i o e)) r =>
InterpreterFor (Process i o e) r
withProcess do
    ByteString -> Sem (Process ByteString o e : r) ()
forall i o e (r :: EffectRow).
Member (Process i o e) r =>
i -> Sem r ()
Process.send (Text -> ByteString
forall a b. ConvertUtf8 a b => a -> b
encodeUtf8 Text
text)