aws-arn 0.1.0.0 → 0.1.0.1
raw patch · 4 files changed
+32/−9 lines, 4 filesdep ~basedep ~hashabledep ~lensPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, hashable, lens, text
API changes (from Hackage documentation)
- Network.AWS.ARN: arnAccount :: forall r_a9xv. Lens' (ARN r_a9xv) Text
+ Network.AWS.ARN: arnAccount :: forall r_a9zE. Lens' (ARN r_a9zE) Text
- Network.AWS.ARN: arnPartition :: forall r_a9xv. Lens' (ARN r_a9xv) Text
+ Network.AWS.ARN: arnPartition :: forall r_a9zE. Lens' (ARN r_a9zE) Text
- Network.AWS.ARN: arnRegion :: forall r_a9xv. Lens' (ARN r_a9xv) Text
+ Network.AWS.ARN: arnRegion :: forall r_a9zE. Lens' (ARN r_a9zE) Text
- Network.AWS.ARN: arnResource :: forall r_a9xv r_af1K. Lens (ARN r_a9xv) (ARN r_af1K) r_a9xv r_af1K
+ Network.AWS.ARN: arnResource :: forall r_a9zE r_af2D. Lens (ARN r_a9zE) (ARN r_af2D) r_a9zE r_af2D
- Network.AWS.ARN: arnService :: forall r_a9xv. Lens' (ARN r_a9xv) Text
+ Network.AWS.ARN: arnService :: forall r_a9zE. Lens' (ARN r_a9zE) Text
Files
- CHANGELOG.md +4/−0
- README.md +1/−1
- aws-arn.cabal +6/−6
- src/Network/AWS/ARN.hs +21/−2
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for aws-arn +## 0.1.0.1 -- 2021-12-16++* Support GHC 9.0.1, GHC 9.2.1, and `hashable <1.5`.+ ## 0.1.0.0 -- 2021-04-07 * First version. Released on an unsuspecting world.
README.md view
@@ -92,7 +92,7 @@ * `*.hs`: [`ormolu`](https://github.com/tweag/ormolu) * `*.cabal`: [`cabal-fmt`](https://hackage.haskell.org/package/cabal-fmt)- (`cabal-fmt --inplace wai-handler-hal.cabal`)+ (`cabal-fmt --inplace aws-arn.cabal`) * `*.nix`: [`nixpkgs-fmt`](https://github.com/nix-community/nixpkgs-fmt) (`nixpkgs-fmt *.nix`)
aws-arn.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: aws-arn-version: 0.1.0.0+version: 0.1.0.1 synopsis: Types and optics for manipulating Amazon Resource Names (ARNs) @@ -35,7 +35,7 @@ CHANGELOG.md README.md -tested-with: GHC ==8.6.5 || ==8.8.4 || ==8.10.4+tested-with: GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.1 common opts default-language: Haskell2010@@ -48,9 +48,9 @@ common deps build-depends:- , base >=4.12 && <4.15- , deriving-compat ^>=0.5.10- , lens >=4.18.1 && <5.1+ , base >=4.12 && <4.17+ , deriving-compat >=0.5.10 && <0.7+ , lens >=4.18.1 && <5.2 , text ^>=1.2.3 library@@ -59,7 +59,7 @@ Network.AWS.ARN Network.AWS.ARN.Lambda - build-depends: hashable ^>=1.3.0.0+ build-depends: hashable >=1.3.0.0 && <1.5 hs-source-dirs: src test-suite spec
src/Network/AWS/ARN.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# OPTIONS_HADDOCK show-extensions #-} @@ -36,7 +37,7 @@ -- let -- authorizerSampleARN = "arn:aws:execute-api:us-east-1:123456789012:my-spiffy-api\/stage\/GET\/some\/deep\/path" -- in--- over ('_ARN' . 'arnResource' . 'slashes') (\parts -> take 2 parts ++ ["*"]) authorizerSampleARN+-- over ('_ARN' . 'arnResource' . 'slashes') (\\parts -> take 2 parts ++ ["*"]) authorizerSampleARN -- @ module Network.AWS.ARN ( ARN (..),@@ -114,7 +115,6 @@ Generic, Generic1, Hashable,- Hashable1, Functor, Foldable, Traversable@@ -125,6 +125,8 @@ $(deriveOrd1 ''ARN) $(deriveShow1 ''ARN) +deriving instance Hashable1 ARN+ toARN :: Text -> Maybe (ARN Text) toARN t = case T.splitOn ":" t of ("arn" : part : srv : reg : acc : res) ->@@ -156,6 +158,19 @@ -- | Split a 'Text' into colon-separated parts. --+-- This is not truly a lawful 'Iso'', but it is useful. The 'Iso''+-- laws are violated for lists whose members contain @':'@:+--+-- >>> [":"] ^. from colons . colons+-- ["",""]+--+-- The laws are also violated on empty lists:+--+-- >>> [] ^. from colons . colons+-- [""]+--+-- However, it is still a useful tool:+-- -- >>> "foo:bar:baz" & colons . ix 1 .~ "quux" -- "foo:quux:baz" colons :: Iso' Text [Text]@@ -164,8 +179,12 @@ -- | Split a 'Text' into slash-separated parts. --+-- This is not truly a lawful 'Iso'', but it is useful:+-- -- >>> "foo/bar/baz" ^. slashes -- ["foo","bar","baz"]+--+-- Similar caveats to 'colons' apply here. slashes :: Iso' Text [Text] slashes = iso (T.splitOn "/") (T.intercalate "/") {-# INLINE slashes #-}