packages feed

hw-polysemy 0.2.14.9 → 0.2.14.10

raw patch · 3 files changed

+63/−1 lines, 3 filesdep +ulidPVP ok

version bump matches the API change (PVP)

Dependencies added: ulid

API changes (from Hackage documentation)

Files

+ hedgehog/HaskellWorks/Polysemy/Hedgehog/Time.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE TypeApplications   #-}++module HaskellWorks.Polysemy.Hedgehog.Time (+    genPOSIXTime,+) where++import           Data.Time.Clock.POSIX (POSIXTime)++import           Hedgehog+import qualified Hedgehog.Gen          as Gen+import qualified Hedgehog.Range        as Range++import           HaskellWorks.Prelude++genPOSIXTime :: Gen POSIXTime+genPOSIXTime = do+    -- Generate a random integer within a reasonable range for POSIX time+    -- POSIXTime is a type synonym for NominalDiffTime, which is in seconds+    -- We'll use a range from 0 to a large number of seconds to cover a wide time span+    seconds <- Gen.integral (Range.linear 0 4_102_444_800) -- Up to year 2100+    return $ fromIntegral @Word64 seconds
+ hedgehog/HaskellWorks/Polysemy/Hedgehog/Ulid.hs view
@@ -0,0 +1,35 @@+module HaskellWorks.Polysemy.Hedgehog.Ulid (+    genUlid,+    genUlidRandom,+    genUlidTimeStamp,+) where++import           Data.Binary                         (decodeOrFail)+import qualified Data.ByteString.Lazy                as LBS+import           Data.ULID                           (ULID (..))+import           Data.ULID.Random                    (ULIDRandom)+import           Data.ULID.TimeStamp                 (ULIDTimeStamp,+                                                      mkULIDTimeStamp)+import           HaskellWorks.Polysemy.Hedgehog.Time++import           Hedgehog+import qualified Hedgehog.Gen                        as Gen+import qualified Hedgehog.Range                      as Range++import           HaskellWorks.Prelude++genUlidRandom :: Gen ULIDRandom+genUlidRandom = do+    bytes <- Gen.bytes (Range.singleton 10) -- 80 bits+    let lazyBytes = LBS.fromStrict bytes+    case decodeOrFail lazyBytes of+        Left (_, _, err)   -> fail $ "Failed to decode ULIDRandom: " <> err -- This shouldn't happen.+        Right (_, _, ulid) -> pure ulid++genUlidTimeStamp :: Gen ULIDTimeStamp+genUlidTimeStamp =+    mkULIDTimeStamp <$> genPOSIXTime++genUlid :: Gen ULID+genUlid =+    ULID <$> genUlidTimeStamp <*> genUlidRandom
hw-polysemy.cabal view
@@ -1,6 +1,6 @@ cabal-version:          3.4 name:                   hw-polysemy-version:                0.2.14.9+version:                0.2.14.10 synopsis:               Opinionated polysemy library description:            Opinionated polysemy library. license:                Apache-2.0@@ -54,6 +54,7 @@ common text                       { build-depends: text                                        < 3      } common time                       { build-depends: time                                        < 2      } common transformers               { build-depends: transformers                                < 0.7    }+common ulid                       { build-depends: ulid                                        < 0.4    } common unliftio                   { build-depends: unliftio                                    < 0.3    } common yaml                       { build-depends: yaml                                        < 0.12   } @@ -172,6 +173,7 @@                         aeson,                         aeson-pretty,                         async,+                        binary,                         bytestring,                         contravariant,                         Diff,@@ -192,6 +194,7 @@                         text,                         time,                         transformers,+                        ulid,                         yaml,   visibility:           public   exposed-modules:      HaskellWorks.Polysemy.Hedgehog@@ -206,6 +209,8 @@                         HaskellWorks.Polysemy.Hedgehog.Process.Internal                         HaskellWorks.Polysemy.Hedgehog.Property                         HaskellWorks.Polysemy.Hedgehog.Test+                        HaskellWorks.Polysemy.Hedgehog.Time+                        HaskellWorks.Polysemy.Hedgehog.Ulid                         HaskellWorks.Polysemy.Hedgehog.Workspace                         HaskellWorks.Polysemy.Hedgehog.Workspace.Types   hs-source-dirs:       hedgehog