diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2024-11-09 19:29:06 +0100 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2024-11-09 19:29:06 +0100 |
commit | 6447095bcffd101507afb65854da22bd4ee6fcaa (patch) | |
tree | 749b7ef6b13aaeb209013f26546f97e8d6670c8b /src | |
parent | 0c8bad166577f9973ba5701aee5ca5d9a3f3bc5d (diff) |
Move withVar into MonadEval type class
Diffstat (limited to 'src')
-rw-r--r-- | src/Run.hs | 3 | ||||
-rw-r--r-- | src/Run/Monad.hs | 2 | ||||
-rw-r--r-- | src/Test.hs | 5 |
3 files changed, 5 insertions, 5 deletions
@@ -186,9 +186,6 @@ evalSteps = mapM_ $ \case void $ outPromptGetLine "Waiting..." -withVar :: ExprType e => VarName -> e -> TestRun a -> TestRun a -withVar name value = local (fmap $ \s -> s { tsVars = ( name, SomeVarValue mempty $ const $ const value ) : tsVars s }) - withInternet :: (Network -> TestRun a) -> TestRun a withInternet inner = do testDir <- asks $ optTestDir . teOptions . fst diff --git a/src/Run/Monad.hs b/src/Run/Monad.hs index 9ec9065..1890572 100644 --- a/src/Run/Monad.hs +++ b/src/Run/Monad.hs @@ -96,6 +96,8 @@ instance MonadEval TestRun where lookupVar name = maybe (fail $ "variable not in scope: '" ++ unpackVarName name ++ "'") return =<< asks (lookup name . tsVars . snd) rootNetwork = asks $ tsNetwork . snd + withVar name value = local (fmap $ \s -> s { tsVars = ( name, SomeVarValue mempty $ const $ const value ) : tsVars s }) + instance MonadOutput TestRun where getOutput = asks $ teOutput . fst diff --git a/src/Test.hs b/src/Test.hs index 24a4c72..58c8667 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -76,8 +76,9 @@ newtype SourceLine = SourceLine Text class MonadFail m => MonadEval m where - lookupVar :: VarName -> m SomeVarValue - rootNetwork :: m Network + lookupVar :: VarName -> m SomeVarValue + rootNetwork :: m Network + withVar :: ExprType e => VarName -> e -> m a -> m a newtype VarName = VarName Text |