module Data.Geo.GPX.Util.Reverse(
reverseRtes,
reverseTrks,
reverseTrksegs,
reverseWpts,
reverseConservingTime
) where
import Data.Geo.GPX.Accessor.Trks
import Data.Geo.GPX.Accessor.Trkpts
import Data.Geo.GPX.Accessor.Trksegs
import Data.Geo.GPX.Accessor.Wpts
import Data.Geo.GPX.Accessor.Rtes
import Data.Geo.GPX.Accessor.Rtepts
import Data.Geo.GPX.Accessor.Time
import Control.Applicative
reverseRtes :: (Rtes a) =>
a
-> a
reverseRtes = usingRtes (map (usingRtepts reverse) . reverse)
reverseTrks :: (Trks a) =>
a
-> a
reverseTrks = usingTrks (map reverseTrksegs . reverse)
reverseTrksegs :: (Trksegs a) =>
a
-> a
reverseTrksegs = usingTrksegs (map (usingTrkpts reverse) . reverse)
reverseWpts :: (Wpts a) =>
a
-> a
reverseWpts = usingWpts reverse
reverseConservingTime :: (Time a) =>
[a]
-> [a]
reverseConservingTime = zipWith setTime . map time <*> reverse