packages feed

string-variants 0.3.1.0 → 0.3.1.1

raw patch · 4 files changed

+20/−5 lines, 4 filesdep +deepseqdep +hashable

Dependencies added: deepseq, hashable

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [0.3.1.1] - 2024-10-31++- Add `Hashable` and `NFData` instances to `NonEmptyText`.+- Add `Data`, `Ord`, `Hashable` and `NFData` instances to `NullableNonEmptyText`.+- Add dependencies on `deepseq` and `hashable`.+ ## [0.3.1.0] - 2024-02-29  - Add `Data` instance to `NonEmptyText`.
src/Data/StringVariants/NonEmptyText/Internal.hs view
@@ -11,11 +11,13 @@  module Data.StringVariants.NonEmptyText.Internal where +import Control.DeepSeq (NFData) import Control.Monad (when) import Data.Aeson (FromJSON (..), ToJSON, withText) import Data.ByteString import Data.Coerce import Data.Data (Data)+import Data.Hashable (Hashable) import Data.MonoTraversable import Data.Proxy import Data.Sequences@@ -33,7 +35,7 @@ -- | Non Empty Text, requires the input is between 1 and @n@ chars and not just whitespace. newtype NonEmptyText (n :: Nat) = NonEmptyText Text   deriving stock (Data, Generic, Show, Read, Lift)-  deriving newtype (Eq, Ord, ToJSON, MonoFoldable)+  deriving newtype (Eq, Ord, ToJSON, MonoFoldable, Hashable, NFData)  type instance Element (NonEmptyText _n) = Char 
src/Data/StringVariants/NullableNonEmptyText.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-}@@ -30,14 +31,18 @@   ) where +import Control.DeepSeq (NFData) import Control.Monad import Data.Aeson import Data.Aeson qualified as J import Data.Aeson.Key qualified as J import Data.Aeson.Types qualified as J-import Data.Data (Proxy (..))+import Data.Data (Data, Proxy (..))+import Data.Hashable (Hashable) import Data.Maybe (fromMaybe)+import Data.MonoTraversable (MonoFoldable) import Data.StringVariants.NonEmptyText+import Data.StringVariants.NonEmptyText.Internal (NonEmptyText (..)) import Data.StringVariants.Util import Data.Text (Text) import Data.Text qualified as T@@ -80,8 +85,8 @@ -- --   Use 'nullableNonEmptyTextToMaybeNonEmptyText' to extract @Maybe (NonEmptyText n)@ from @NullableNonEmptyText n@. newtype NullableNonEmptyText n = NullableNonEmptyText (Maybe (NonEmptyText n))-  deriving stock (Generic, Show, Read, Lift)-  deriving newtype (Eq)+  deriving stock (Data, Generic, Show, Read, Lift)+  deriving newtype (Eq, Ord, Hashable, NFData)  mkNullableNonEmptyText :: forall n. (KnownNat n, 1 <= n) => Text -> Maybe (NullableNonEmptyText n) mkNullableNonEmptyText t
string-variants.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           string-variants-version:        0.3.1.0+version:        0.3.1.1 synopsis:       Constrained text newtypes description:    See README at <https://github.com/MercuryTechnologies/string-variants#readme>. category:       Data@@ -79,6 +79,8 @@     , aeson >=2.0.0.0     , base >=4.16 && <5     , bytestring+    , deepseq+    , hashable     , mono-traversable     , refined     , string-conversions