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 +6/−0
- src/Data/StringVariants/NonEmptyText/Internal.hs +3/−1
- src/Data/StringVariants/NullableNonEmptyText.hs +8/−3
- string-variants.cabal +3/−1
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