module Text.Atom.Pub
( Service(..)
, Workspace(..)
, Collection(..)
, Categories(..)
, Accept(..)
) where
import Prelude.Compat
import Data.Text (Text)
import Data.XML.Types as XML
import Text.Atom.Feed (Category, TextContent, URI)
data Service =
Service
{ Service -> [Workspace]
serviceWorkspaces :: [Workspace]
, Service -> [Element]
serviceOther :: [XML.Element]
}
data Workspace =
Workspace
{ Workspace -> TextContent
workspaceTitle :: TextContent
, Workspace -> [Collection]
workspaceCols :: [Collection]
, Workspace -> [Element]
workspaceOther :: [XML.Element]
}
data Collection =
Collection
{ Collection -> URI
collectionURI :: URI
, Collection -> TextContent
collectionTitle :: TextContent
, Collection -> [Accept]
collectionAccept :: [Accept]
, Collection -> [Categories]
collectionCats :: [Categories]
, Collection -> [Element]
collectionOther :: [XML.Element]
}
data Categories
= CategoriesExternal URI
| Categories (Maybe Bool) (Maybe URI) [Category]
deriving (Int -> Categories -> ShowS
[Categories] -> ShowS
Categories -> String
(Int -> Categories -> ShowS)
-> (Categories -> String)
-> ([Categories] -> ShowS)
-> Show Categories
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Categories] -> ShowS
$cshowList :: [Categories] -> ShowS
show :: Categories -> String
$cshow :: Categories -> String
showsPrec :: Int -> Categories -> ShowS
$cshowsPrec :: Int -> Categories -> ShowS
Show)
newtype Accept =
Accept
{ Accept -> URI
acceptType :: Text
}