Description
A structured alternative to Show.
README.md
debug-print
Offers ToDebugPrintValue
, a structured alternative to Show
for printing values for testing and debugging purposes.
import DebugPrint
import DebugPrint.Aeson
import Data.Aeson qualified as Aeson
data Report = Report
{ milliseconds :: Int
, errors :: [Text]
, fileName :: Maybe Text
}
deriving stock Generic
deriving anyclass (ToDebugPrintRecord, ToDebugPrintValue)
report :: Report
report = Report{ milliseconds = 5_824
, errors = ["Warning! Problems."]
, fileName = Nothing }
main :: IO ()
main = hspec $ do
it "" $ do
Aeson.encode (debugPrintValueToAeson report) `shouldBe`
"{\"errors\":[\"Warning! Problems.\"],\"milliseconds\":5824}"