on master help sign in
Switch versionFromText to produce Maybe

The info produced in Left was the same for everything. I.e. it was useless and can be made more contextually helpful in some code that participates more actively in error reporting.

commit780b9a351724e7e403693c7bdacafdaeae4fbf3b authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 22 Jan 2018, 17:08 (9 years ago) parentbd97163
1 file changed+12−11
src/Elm/Package.hs+12−11
src/Elm/Package.hs+12−11
@@ -245,7 +245,7 @@ versionToText (Version major minor patch) =
245245 <> B.decimal patch
246246
247247
248−versionFromText :: Text -> Either String Version
248+versionFromText :: Text -> Maybe Version
249249versionFromText text =
250250 case Text.splitOn "." text of
251251 [major, minor, patch] ->
@@ -255,17 +255,17 @@ versionFromText text =
255255 <*> toNumber patch
256256
257257 _ ->
258− Left "Must have format MAJOR.MINOR.PATCH (e.g. 1.0.2)"
258+ Nothing
259259
260260
261−toNumber :: Text -> Either String Word16
261+toNumber :: Text -> Maybe Word16
262262toNumber txt =
263263 case Text.decimal txt of
264264 Right (n, "") ->
265− Right n
265+ Just n
266266
267267 _ ->
268− Left "Must have format MAJOR.MINOR.PATCH (e.g. 1.0.2)"
268+ Nothing
269269
270270
271271
@@ -320,11 +320,12 @@ decoder :: Decode.Decoder String Name
320320decoder =
321321 do txt <- Decode.text
322322 case fromText txt of
323+ Right name ->
324+ Decode.succeed name
325+
323326 Left msg ->
324327 Decode.fail msg
325328
326− Right name ->
327− Decode.succeed name
328329
329330
330331encode :: Name -> Encode.Value
@@ -333,15 +334,15 @@ encode name =
333334
334335
335336
336−versionDecoder :: Decode.Decoder String Version
337+versionDecoder :: Decode.Decoder Text Version
337338versionDecoder =
338339 do txt <- Decode.text
339340 case versionFromText txt of
340− Right version ->
341+ Just version ->
341342 Decode.succeed version
342343
343− Left msg ->
344− Decode.fail msg
344+ Nothing ->
345+ Decode.fail txt
345346
346347
347348encodeVersion :: Version -> Encode.Value