yesod/yesod-core/Yesod/Routes/Class.hs
2014-09-07 17:34:37 +03:00

22 lines
578 B
Haskell

{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleContexts #-}
module Yesod.Routes.Class
( RenderRoute (..)
, ParseRoute (..)
, RouteAttrs (..)
) where
import Data.Text (Text)
import Data.Set (Set)
class Eq (Route a) => RenderRoute a where
-- | The type-safe URLs associated with a site argument.
data Route a
renderRoute :: Route a -> ([Text], [(Text, Text)])
class RenderRoute a => ParseRoute a where
parseRoute :: ([Text], [(Text, Text)]) -> Maybe (Route a)
class RenderRoute a => RouteAttrs a where
routeAttrs :: Route a -> Set Text