module Data.Geo.Route.Copyright(
Copyright
, copyright
, copyright'
, copyrightAuthor
, copyrightYear
, copyrightLicense
) where
import Prelude(Show)
import Control.Lens(Lens', lens)
import Data.Eq(Eq)
import Data.Foldable(Foldable(fold))
import Data.Geo.Route.Gpx(Gpx(gpx))
import Data.Maybe(Maybe(Just, Nothing))
import Data.Ord(Ord)
import Data.String(String)
import Text.Printf(printf)
data Copyright =
Copyright
String
(Maybe String)
(Maybe String)
deriving (Eq, Ord, Show)
copyright ::
String
-> Copyright
copyright a =
Copyright a Nothing Nothing
copyright' ::
String
-> String
-> String
-> Copyright
copyright' a y l =
Copyright a (Just y) (Just l)
copyrightAuthor ::
Lens' Copyright String
copyrightAuthor =
lens (\(Copyright a _ _) -> a) (\(Copyright _ y l) a -> Copyright a y l)
copyrightYear ::
Lens' Copyright (Maybe String)
copyrightYear =
lens (\(Copyright _ y _) -> y) (\(Copyright a _ l) y -> Copyright a y l)
copyrightLicense ::
Lens' Copyright (Maybe String)
copyrightLicense =
lens (\(Copyright _ _ l) -> l) (\(Copyright a y _) l -> Copyright a y l)
instance Gpx Copyright where
gpx (Copyright a y l) =
printf "<copyright author=\"%s\">%s%s</copyright>" a (fold y) (fold l)