packages feed

opt-env-conf 0.4.0.0 → 0.4.0.1

raw patch · 3 files changed

+14/−1 lines, 3 files

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [0.4.0.1] - 2024-07-26++### Added++* The `viaCodec` reader.+ ## [0.4.0.0] - 2024-07-23  ### Added
opt-env-conf.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           opt-env-conf-version:        0.4.0.0+version:        0.4.0.1 synopsis:       Settings parsing for Haskell: command-line arguments, environment variables, and configuration values. homepage:       https://github.com/NorfairKing/opt-env-conf#readme bug-reports:    https://github.com/NorfairKing/opt-env-conf/issues
src/OptEnvConf/Reader.hs view
@@ -12,6 +12,7 @@     str,     auto,     exists,+    viaCodec,      -- * Constructing your own reader     maybeReader,@@ -29,13 +30,16 @@   ) where +import Autodocodec import Control.Monad.Reader (MonadReader (..))+import Data.Aeson.Types as JSON import Data.List (intercalate) import Data.List.NonEmpty (NonEmpty (..), (<|)) import qualified Data.List.NonEmpty as NE import Data.Set (Set) import qualified Data.Set as S import Data.String+import qualified Data.Text as T import Text.Read (readMaybe)  newtype Reader a = Reader {unReader :: String -> Either String a}@@ -83,6 +87,9 @@ -- > exists = Reader $ const $ pure True exists :: Reader Bool exists = Reader $ const $ pure True++viaCodec :: (HasCodec a) => Reader a+viaCodec = eitherReader $ parseEither $ parseJSONViaCodec . JSON.String . T.pack  -- | Turn a 'Maybe' parsing function into a 'Reader' maybeReader :: (String -> Maybe a) -> Reader a