module Data.Geo.OSM.Member(
Member,
member
) where
import Text.XML.HXT.Arrow
import Text.XML.HXT.Extras
import Data.Geo.OSM.MemberType
import Data.Geo.OSM.Accessor.Mtype
import Data.Geo.OSM.Accessor.Ref
import Data.Geo.OSM.Accessor.Role
data Member = Member MemberType String String
deriving Eq
instance XmlPickler Member where
xpickle = xpElem "member" (xpWrap (\(mtype', mref', mrole') -> Member mtype' mref' mrole', \(Member mtype' mref' mrole') -> (mtype', mref', mrole'))
(xpTriple xpickle (xpAttr "ref" xpText) (xpAttr "role" xpText)))
instance Show Member where
show = showPickled []
instance Mtype Member where
mtype (Member x _ _) = x
instance Ref Member where
ref (Member _ x _) = x
instance Role Member where
role (Member _ _ x) = x
member :: MemberType
-> String
-> String
-> Member
member = Member