mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 20:02:27 +03:00
lib: debug helpers traceAt, traceAtWith
This commit is contained in:
parent
7564963a62
commit
e0c3275d74
@ -12,6 +12,8 @@ module Hledger.Utils.Debug (
|
|||||||
,pshow
|
,pshow
|
||||||
,ptrace
|
,ptrace
|
||||||
,traceWith
|
,traceWith
|
||||||
|
,traceAt
|
||||||
|
,traceAtWith
|
||||||
,debugLevel
|
,debugLevel
|
||||||
,ptraceAt
|
,ptraceAt
|
||||||
,ptraceAtWith
|
,ptraceAtWith
|
||||||
@ -81,8 +83,9 @@ pshow = ppShow
|
|||||||
ptrace :: Show a => a -> a
|
ptrace :: Show a => a -> a
|
||||||
ptrace = traceWith pshow
|
ptrace = traceWith pshow
|
||||||
|
|
||||||
-- | Trace (print to stderr) a showable value using a custom show function.
|
-- | Like traceShowId, but uses a custom show function to render the value.
|
||||||
traceWith :: (a -> String) -> a -> a
|
-- traceShowIdWith was too much of a mouthful.
|
||||||
|
traceWith :: Show a => (a -> String) -> a -> a
|
||||||
traceWith f a = trace (f a) a
|
traceWith f a = trace (f a) a
|
||||||
|
|
||||||
-- | Global debug level, which controls the verbosity of debug output
|
-- | Global debug level, which controls the verbosity of debug output
|
||||||
@ -108,6 +111,18 @@ debugLevel = case snd $ break (=="--debug") args of
|
|||||||
where
|
where
|
||||||
args = unsafePerformIO getArgs
|
args = unsafePerformIO getArgs
|
||||||
|
|
||||||
|
-- | Trace (print to stderr) a string if the global debug level is at
|
||||||
|
-- or above the specified level. At level 0, always prints. Otherwise,
|
||||||
|
-- uses unsafePerformIO.
|
||||||
|
traceAt :: Int -> String -> a -> a
|
||||||
|
traceAt level
|
||||||
|
| level > 0 && debugLevel < level = flip const
|
||||||
|
| otherwise = trace
|
||||||
|
|
||||||
|
-- | Trace (print to stderr) a showable value using a custom show function.
|
||||||
|
traceAtWith :: (a -> String) -> a -> a
|
||||||
|
traceAtWith f a = trace (f a) a
|
||||||
|
|
||||||
-- | Pretty-print a label and a showable value to the console
|
-- | Pretty-print a label and a showable value to the console
|
||||||
-- if the global debug level is at or above the specified level.
|
-- if the global debug level is at or above the specified level.
|
||||||
-- At level 0, always prints. Otherwise, uses unsafePerformIO.
|
-- At level 0, always prints. Otherwise, uses unsafePerformIO.
|
||||||
|
Loading…
Reference in New Issue
Block a user