opt-env-conf 0.4.0.0 → 0.4.0.1
raw patch · 3 files changed
+14/−1 lines, 3 files
Files
- CHANGELOG.md +6/−0
- opt-env-conf.cabal +1/−1
- src/OptEnvConf/Reader.hs +7/−0
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