{-# OPTIONS_HADDOCK hide #-} module Utils ( txt, enumerate, -- shared path elements UrlPath (..), db ) where -- debugging only remove brefore release import Data.Text (Text, pack, unpack) import Debug.Trace (trace) import Text.Show.Pretty qualified as P {- this module is used between the library and testing modules it will be removed in a later release -} -- general utils txt :: (Show a) => a -> Text txt = pack . P.ppShow enumerate :: (Enum a, Bounded a) => [a] enumerate = [minBound ..] -- shared path elements newtype UrlPath = MkUrlPath {segments :: [Text]} deriving newtype (Show, Eq, Ord, Semigroup) -- debugging db :: (Show a) => Text -> a -> a db label value = trace (unpack $ label <> ":\n" <> txt value) value