web-inv-route-0.1: Web/Route/Invertible/String.hs
-- |Representations of (string) data that can be routed/parsed.
{-# LANGUAGE FlexibleInstances #-}
module Web.Route.Invertible.String
( RouteString(..)
) where
import qualified Data.ByteString.Char8 as BS
import Data.Hashable (Hashable(..))
import Data.String (IsString(..))
import qualified Data.Text as T
-- |Representions of request data that can be used in routing
class (Eq s, IsString s, Hashable s, Monoid s) => RouteString s where
-- |Must be the inverse of 'fromString'
toString :: s -> String
instance RouteString String where
toString = id
instance RouteString T.Text where
toString = T.unpack
instance RouteString BS.ByteString where
toString = BS.unpack