{-# options_haddock prune #-}
module Polysemy.Process.Interpreter.ProcessStdio where
import Polysemy.Conc.Effect.Race (Race)
import Polysemy.Conc.Effect.Scoped (Scoped)
import Polysemy.Resume (type (!!))
import System.Process.Typed (ProcessConfig)
import Polysemy.Process.Data.ProcessError (ProcessError)
import Polysemy.Process.Data.ProcessOptions (ProcessOptions)
import Polysemy.Process.Data.SystemProcessError (SystemProcessError)
import Polysemy.Process.Effect.Process (Process)
import Polysemy.Process.Interpreter.Process (
interpretProcessByteString,
interpretProcessByteStringLines,
interpretProcessText,
interpretProcessTextLines,
)
import Polysemy.Process.Interpreter.SystemProcess (PipesProcess, interpretSystemProcessNative)
interpretProcessByteStringNative ::
Members [Resource, Race, Async, Embed IO] r =>
ProcessOptions ->
ProcessConfig () () () ->
InterpreterFor (Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteStringNative :: forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Race, Async, Embed IO] r =>
ProcessOptions
-> ProcessConfig () () ()
-> InterpreterFor
(Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteStringNative ProcessOptions
options ProcessConfig () () ()
conf =
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Embed IO] r =>
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
interpretSystemProcessNative ProcessConfig () () ()
conf (Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
-> Sem r a)
-> (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem r a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall resource err (r :: [(* -> *) -> * -> *]).
Members
'[Scoped resource (SystemProcess !! err), Resource, Race, Async,
Embed IO]
r =>
ProcessOptions
-> InterpreterFor
(Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteString @PipesProcess @SystemProcessError ProcessOptions
options (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a)
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
forall (e2 :: (* -> *) -> * -> *) (e1 :: (* -> *) -> * -> *)
(r :: [(* -> *) -> * -> *]) a.
Sem (e1 : r) a -> Sem (e1 : e2 : r) a
raiseUnder
interpretProcessByteStringLinesNative ::
Members [Resource, Race, Async, Embed IO] r =>
ProcessOptions ->
ProcessConfig () () () ->
InterpreterFor (Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteStringLinesNative :: forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Race, Async, Embed IO] r =>
ProcessOptions
-> ProcessConfig () () ()
-> InterpreterFor
(Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteStringLinesNative ProcessOptions
options ProcessConfig () () ()
conf =
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Embed IO] r =>
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
interpretSystemProcessNative ProcessConfig () () ()
conf (Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
-> Sem r a)
-> (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem r a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall resource err (r :: [(* -> *) -> * -> *]).
Members
'[Scoped resource (SystemProcess !! err), Resource, Race, Async,
Embed IO]
r =>
ProcessOptions
-> InterpreterFor
(Scoped () (Process ByteString ByteString) !! ProcessError) r
interpretProcessByteStringLines @PipesProcess @SystemProcessError ProcessOptions
options (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> (Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a)
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Sem
((Scoped () (Process ByteString ByteString) !! ProcessError) : r) a
-> Sem
((Scoped () (Process ByteString ByteString) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
forall (e2 :: (* -> *) -> * -> *) (e1 :: (* -> *) -> * -> *)
(r :: [(* -> *) -> * -> *]) a.
Sem (e1 : r) a -> Sem (e1 : e2 : r) a
raiseUnder
interpretProcessTextNative ::
Members [Resource, Race, Async, Embed IO] r =>
ProcessOptions ->
ProcessConfig () () () ->
InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessTextNative :: forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Race, Async, Embed IO] r =>
ProcessOptions
-> ProcessConfig () () ()
-> InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessTextNative ProcessOptions
options ProcessConfig () () ()
conf =
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Embed IO] r =>
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
interpretSystemProcessNative ProcessConfig () () ()
conf (Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
-> Sem r a)
-> (Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem r a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall resource err (r :: [(* -> *) -> * -> *]).
Members
'[Scoped resource (SystemProcess !! err), Resource, Race, Async,
Embed IO]
r =>
ProcessOptions
-> InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessText @PipesProcess @SystemProcessError ProcessOptions
options (Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> (Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a)
-> Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
forall (e2 :: (* -> *) -> * -> *) (e1 :: (* -> *) -> * -> *)
(r :: [(* -> *) -> * -> *]) a.
Sem (e1 : r) a -> Sem (e1 : e2 : r) a
raiseUnder
interpretProcessTextLinesNative ::
Members [Resource, Race, Async, Embed IO] r =>
ProcessOptions ->
ProcessConfig () () () ->
InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessTextLinesNative :: forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Race, Async, Embed IO] r =>
ProcessOptions
-> ProcessConfig () () ()
-> InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessTextLinesNative ProcessOptions
options ProcessConfig () () ()
conf =
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
forall (r :: [(* -> *) -> * -> *]).
Members '[Resource, Embed IO] r =>
ProcessConfig () () ()
-> InterpreterFor
(Scoped PipesProcess (SystemProcess !! SystemProcessError)) r
interpretSystemProcessNative ProcessConfig () () ()
conf (Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
-> Sem r a)
-> (Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem r a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall resource err (r :: [(* -> *) -> * -> *]).
Members
'[Scoped resource (SystemProcess !! err), Resource, Race, Async,
Embed IO]
r =>
ProcessOptions
-> InterpreterFor (Scoped () (Process Text Text) !! ProcessError) r
interpretProcessTextLines @PipesProcess @SystemProcessError ProcessOptions
options (Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a)
-> (Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a)
-> Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
(Scoped PipesProcess (SystemProcess !! SystemProcessError) : r) a
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Sem ((Scoped () (Process Text Text) !! ProcessError) : r) a
-> Sem
((Scoped () (Process Text Text) !! ProcessError)
: Scoped PipesProcess (SystemProcess !! SystemProcessError) : r)
a
forall (e2 :: (* -> *) -> * -> *) (e1 :: (* -> *) -> * -> *)
(r :: [(* -> *) -> * -> *]) a.
Sem (e1 : r) a -> Sem (e1 : e2 : r) a
raiseUnder