module Data.Geo.GPX.Trkseg(
Trkseg,
trkseg
) where
import Data.Geo.GPX.Wpt
import Data.Geo.GPX.Extensions
import Data.Geo.GPX.Lens.TrkptsL
import Data.Geo.GPX.Lens.ExtensionsL
import Data.Lens.Common
import Control.Comonad.Trans.Store
import Text.XML.HXT.Arrow.Pickle
data Trkseg = Trkseg [Wpt] (Maybe Extensions)
deriving Eq
trkseg ::
[Wpt]
-> Maybe Extensions
-> Trkseg
trkseg =
Trkseg
instance TrkptsL Trkseg where
trkptsL =
Lens $ \(Trkseg trkpts extensions) -> store (\trkpts -> Trkseg trkpts extensions) trkpts
instance ExtensionsL Trkseg where
extensionsL =
Lens $ \(Trkseg trkpts extensions) -> store (\extensions -> Trkseg trkpts extensions) extensions
instance XmlPickler Trkseg where
xpickle =
xpWrap (uncurry trkseg, \(Trkseg trkpt' extensions') -> (trkpt', extensions')) (xpPair
(xpList (xpElem "trkpt" xpickle))
(xpOption (xpElem "extensions" xpickle)))