Copyright | (c) Roman Gonzalez 2017 |
---|---|
License | MIT |
Maintainer | romanandreg@gmail.com |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
Provides functions that help on the creation of Application teardown sub-routines
- class ITeardown teardown where
- class IResource resource where
- data Teardown
- data TeardownResult
- = BranchResult {
- resultDescription :: !Description
- resultElapsedTime :: !NominalDiffTime
- resultDidFail :: !Bool
- resultListing :: ![TeardownResult]
- | LeafResult {
- resultDescription :: !Description
- resultElapsedTime :: !NominalDiffTime
- resultError :: !(Maybe SomeException)
- | EmptyResult {
- resultDescription :: !Description
- = BranchResult {
- teardown :: ITeardown teardown => teardown -> IO TeardownResult
- emptyTeardown :: Description -> Teardown
- newTeardown :: IResource resource => Text -> resource -> IO Teardown
- didTeardownFail :: TeardownResult -> Bool
- failedToredownCount :: TeardownResult -> Int
- toredownCount :: TeardownResult -> Int
- renderTeardownReport :: TeardownResult -> Doc
Typeclasses for extending teardown functionality
class ITeardown teardown where Source #
A record that is or contains a Teardown
sub-routine should
instantiate this typeclass
teardown :: teardown -> IO TeardownResult Source #
Executes teardown sub-routine returning a TeardownResult
class IResource resource where Source #
A resource or sub-routine that can be transformed into a Teardown
operation
Cleanup main type and function
Sub-routine that performs a resource cleanup operation
data TeardownResult Source #
Result from a Teardown
sub-routine
BranchResult | Result is composed by multiple teardown sub-routines |
| |
LeafResult | Result represents a single teardown sub-routine |
| |
EmptyResult | Represents a stub cleanup operation (for lifting pure values) |
|
teardown :: ITeardown teardown => teardown -> IO TeardownResult Source #
Executes teardown sub-routine returning a TeardownResult
Functions to create a Teardown
record
emptyTeardown :: Description -> Teardown Source #
Creates a stub Teardown sub-routine, normally used when a contract expects a teardown return but there is no allocation being made
Functions to deal with results from teardown
call
didTeardownFail :: TeardownResult -> Bool Source #
Returns a boolean indicating if any of the cleanup sub-routine failed
failedToredownCount :: TeardownResult -> Int Source #
Returns number of sub-routines that threw an exception on execution of teardown
toredownCount :: TeardownResult -> Int Source #
Returns number of sub-routines executed at teardown
renderTeardownReport :: TeardownResult -> Doc Source #
Renders an ASCII Tree with the TeardownResult of a Teardown sub-routine execution