module Text.Atom.Feed.Link
( LinkRelation(..)
, showLinkRelation
, showLinkAttr
) where
import Prelude.Compat
data LinkRelation
= LinkAlternate
| LinkCurrent
| LinkEnclosure
| LinkEdit
| LinkEditMedia
| LinkFirst
| LinkLast
| LinkLicense
| LinkNext
| LinkNextArchive
| LinkPayment
| LinkPrevArchive
| LinkPrevious
| LinkRelated
| LinkReplies
| LinkSelf
| LinkVia
| LinkOther String
deriving (LinkRelation -> LinkRelation -> Bool
(LinkRelation -> LinkRelation -> Bool)
-> (LinkRelation -> LinkRelation -> Bool) -> Eq LinkRelation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LinkRelation -> LinkRelation -> Bool
$c/= :: LinkRelation -> LinkRelation -> Bool
== :: LinkRelation -> LinkRelation -> Bool
$c== :: LinkRelation -> LinkRelation -> Bool
Eq, Int -> LinkRelation -> ShowS
[LinkRelation] -> ShowS
LinkRelation -> String
(Int -> LinkRelation -> ShowS)
-> (LinkRelation -> String)
-> ([LinkRelation] -> ShowS)
-> Show LinkRelation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LinkRelation] -> ShowS
$cshowList :: [LinkRelation] -> ShowS
show :: LinkRelation -> String
$cshow :: LinkRelation -> String
showsPrec :: Int -> LinkRelation -> ShowS
$cshowsPrec :: Int -> LinkRelation -> ShowS
Show)
showLinkRelation :: LinkRelation -> String
showLinkRelation :: LinkRelation -> String
showLinkRelation LinkRelation
lr =
case LinkRelation
lr of
LinkRelation
LinkAlternate -> String
"alternate"
LinkRelation
LinkCurrent -> String
"current"
LinkRelation
LinkEnclosure -> String
"enclosure"
LinkRelation
LinkEdit -> String
"edit"
LinkRelation
LinkEditMedia -> String
"edit-media"
LinkRelation
LinkFirst -> String
"first"
LinkRelation
LinkLast -> String
"last"
LinkRelation
LinkLicense -> String
"license"
LinkRelation
LinkNext -> String
"next"
LinkRelation
LinkNextArchive -> String
"next-archive"
LinkRelation
LinkPayment -> String
"payment"
LinkRelation
LinkPrevArchive -> String
"prev-archive"
LinkRelation
LinkPrevious -> String
"previous"
LinkRelation
LinkRelated -> String
"related"
LinkRelation
LinkReplies -> String
"replies"
LinkRelation
LinkSelf -> String
"self"
LinkRelation
LinkVia -> String
"via"
LinkOther String
s -> String
s
showLinkAttr :: LinkRelation -> String -> String
showLinkAttr :: LinkRelation -> ShowS
showLinkAttr LinkRelation
lr String
s = LinkRelation -> String
showLinkRelation LinkRelation
lr String -> ShowS
forall a. [a] -> [a] -> [a]
++ Char
'=' Char -> ShowS
forall a. a -> [a] -> [a]
: Char
'"' Char -> ShowS
forall a. a -> [a] -> [a]
: (Char -> String) -> ShowS
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap Char -> String
escQ String
s String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"\""
where
escQ :: Char -> String
escQ Char
'"' = String
"&dquot;"
escQ Char
x = [Char
x]