module Text.DublinCore.Types
( DCItem(..)
, DCInfo(..)
, infoToTag
, dc_element_names
) where
import Prelude.Compat
import Data.Text
data DCItem = DCItem
{ DCItem -> DCInfo
dcElt :: DCInfo
, DCItem -> Text
dcText :: Text
} deriving (DCItem -> DCItem -> Bool
(DCItem -> DCItem -> Bool)
-> (DCItem -> DCItem -> Bool) -> Eq DCItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DCItem -> DCItem -> Bool
$c/= :: DCItem -> DCItem -> Bool
== :: DCItem -> DCItem -> Bool
$c== :: DCItem -> DCItem -> Bool
Eq, Int -> DCItem -> ShowS
[DCItem] -> ShowS
DCItem -> String
(Int -> DCItem -> ShowS)
-> (DCItem -> String) -> ([DCItem] -> ShowS) -> Show DCItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DCItem] -> ShowS
$cshowList :: [DCItem] -> ShowS
show :: DCItem -> String
$cshow :: DCItem -> String
showsPrec :: Int -> DCItem -> ShowS
$cshowsPrec :: Int -> DCItem -> ShowS
Show)
data DCInfo
= DC_Title
| DC_Creator
| DC_Subject
| DC_Description
| DC_Publisher
| DC_Contributor
| DC_Date
| DC_Type
| DC_Format
| DC_Identifier
| DC_Source
| DC_Language
| DC_Relation
| DC_Coverage
| DC_Rights
| DC_Other Text
deriving (DCInfo -> DCInfo -> Bool
(DCInfo -> DCInfo -> Bool)
-> (DCInfo -> DCInfo -> Bool) -> Eq DCInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DCInfo -> DCInfo -> Bool
$c/= :: DCInfo -> DCInfo -> Bool
== :: DCInfo -> DCInfo -> Bool
$c== :: DCInfo -> DCInfo -> Bool
Eq, Int -> DCInfo -> ShowS
[DCInfo] -> ShowS
DCInfo -> String
(Int -> DCInfo -> ShowS)
-> (DCInfo -> String) -> ([DCInfo] -> ShowS) -> Show DCInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DCInfo] -> ShowS
$cshowList :: [DCInfo] -> ShowS
show :: DCInfo -> String
$cshow :: DCInfo -> String
showsPrec :: Int -> DCInfo -> ShowS
$cshowsPrec :: Int -> DCInfo -> ShowS
Show)
infoToTag :: DCInfo -> Text
infoToTag :: DCInfo -> Text
infoToTag i :: DCInfo
i =
case DCInfo
i of
DC_Title -> "title"
DC_Creator -> "creator"
DC_Subject -> "subject"
DC_Description -> "description"
DC_Publisher -> "publisher"
DC_Contributor -> "contributor"
DC_Date -> "date"
DC_Type -> "type"
DC_Format -> "format"
DC_Identifier -> "identifier"
DC_Source -> "source"
DC_Language -> "language"
DC_Relation -> "relation"
DC_Coverage -> "coverage"
DC_Rights -> "rights"
DC_Other o :: Text
o -> Text
o
dc_element_names :: [Text]
dc_element_names :: [Text]
dc_element_names =
[ "title"
, "creator"
, "subject"
, "description"
, "publisher"
, "contributor"
, "date"
, "type"
, "format"
, "identifier"
, "source"
, "language"
, "relation"
, "coverage"
, "rights"
]