replace case expressions with listToMaybe
This commit is contained in:
parent
2befb534a1
commit
a3d48100ae
21
lib/Track.hs
21
lib/Track.hs
@ -17,6 +17,7 @@ import Control.Exception
|
|||||||
import Data.List as List
|
import Data.List as List
|
||||||
import Data.List qualified
|
import Data.List qualified
|
||||||
import Data.Map as Map
|
import Data.Map as Map
|
||||||
|
import Data.Maybe
|
||||||
import Data.Text qualified
|
import Data.Text qualified
|
||||||
import Data.Text.Lazy as T
|
import Data.Text.Lazy as T
|
||||||
import Data.Time
|
import Data.Time
|
||||||
@ -87,32 +88,20 @@ elToPoint c =
|
|||||||
>>= content
|
>>= content
|
||||||
in Point
|
in Point
|
||||||
(Pos lat lon)
|
(Pos lat lon)
|
||||||
( case ele of
|
( (listToMaybe ele) >>= return . asFloat )
|
||||||
[e] -> Just $ asFloat e
|
|
||||||
_ -> Nothing
|
|
||||||
)
|
|
||||||
( case ts of
|
( case ts of
|
||||||
[e] -> case Data.Time.ISO8601.parseISO8601 (Data.Text.unpack e) of
|
[e] -> case Data.Time.ISO8601.parseISO8601 (Data.Text.unpack e) of
|
||||||
Just utime -> utime
|
Just utime -> utime
|
||||||
_ -> UTCTime (toEnum 0) 0
|
_ -> UTCTime (toEnum 0) 0
|
||||||
_ -> UTCTime (toEnum 0) 0
|
_ -> UTCTime (toEnum 0) 0
|
||||||
)
|
)
|
||||||
( case cadence of
|
( (listToMaybe cadence) >>= return . asInt)
|
||||||
[e] -> Just (asInt e)
|
( (listToMaybe power) >>= return . asInt)
|
||||||
_ -> Nothing
|
|
||||||
)
|
|
||||||
( case power of
|
|
||||||
[e] -> Just (asInt e)
|
|
||||||
_ -> Nothing
|
|
||||||
)
|
|
||||||
Nothing
|
Nothing
|
||||||
where
|
where
|
||||||
asFloat v = (read (Data.Text.unpack v) :: Float)
|
asFloat v = (read (Data.Text.unpack v) :: Float)
|
||||||
asInt v = (read (Data.Text.unpack v) :: Int)
|
asInt v = (read (Data.Text.unpack v) :: Int)
|
||||||
getAttr name =
|
getAttr name = maybe 0 asFloat (Map.lookup name attrs)
|
||||||
case Map.lookup name attrs of
|
|
||||||
Just v -> asFloat v
|
|
||||||
_ -> 0
|
|
||||||
_ -> mkPoint (Pos 0 0)
|
_ -> mkPoint (Pos 0 0)
|
||||||
|
|
||||||
getPoints :: Cursor -> [Point]
|
getPoints :: Cursor -> [Point]
|
||||||
|
Loading…
Reference in New Issue
Block a user