@@ -3,8 +3,10 @@ module Web.PathPieces
3 ( RoutePiece (..)
3 ( RoutePiece (..)
4 , RouteMultiPiece (..)
4 , RouteMultiPiece (..)
5 -- * Deprecated
5 -- * Deprecated
6− , SinglePiece (..)
6+ , toSinglePiece
7− , MultiPiece (..)
7+ , toMultiPiece
10import Data.Int (Int64)
12import Data.Int (Int64)
@@ -66,58 +68,18 @@ instance RouteMultiPiece [L.Text] where
66 fromRouteMultiPiece = Just . map (L.fromChunks . return)
68 fromRouteMultiPiece = Just . map (L.fromChunks . return)
67 toRouteMultiPiece = map $ S.concat . L.toChunks
69 toRouteMultiPiece = map $ S.concat . L.toChunks
71+{-# DEPRECATED toSinglePiece "Use toRoutePiece instead of toSinglePiece" #-}
72+toSinglePiece :: RoutePiece p => p -> S.Text
73+toSinglePiece = toRoutePiece
70−-- | deprecated api
75+{-# DEPRECATED fromSinglePiece "Use fromRoutePiece instead of fromSinglePiece" #-}
71−class SinglePiece s where
72− fromSinglePiece :: S.Text -> Maybe s
76+fromSinglePiece :: RoutePiece p => S.Text -> Maybe p
73− toSinglePiece :: s -> S.Text
77+fromSinglePiece = fromRoutePiece
75−instance SinglePiece String where
79+{-# DEPRECATED toMultiPiece "Use toRouteMultiPiece instead of toMultiPiece" #-}
76− fromSinglePiece s = if S.null s then Nothing else Just (S.unpack s)
80+toMultiPiece :: RouteMultiPiece ps => ps -> [S.Text]
77− toSinglePiece = S.pack
81+toMultiPiece = toRouteMultiPiece
79−instance SinglePiece S.Text where
83+{-# DEPRECATED fromMultiPiece "Use fromRouteMultiPiece instead of fromMultiPiece" #-}
80− fromSinglePiece s = if S.null s then Nothing else Just s
84+fromMultiPiece :: RouteMultiPiece ps => [S.Text] -> Maybe ps
83−instance SinglePiece L.Text where
84− fromSinglePiece s = if S.null s then Nothing else Just (L.fromChunks [s])
85− toSinglePiece = S.concat . L.toChunks
87−instance SinglePiece Integer where
89− case Data.Text.Read.decimal s of
90− Right (i, _) -> Just i
92− toSinglePiece = S.pack . show
94−instance SinglePiece Int where
96− case Data.Text.Read.decimal s of
97− Right (i, _) -> Just i
99− toSinglePiece = S.pack . show
101−instance SinglePiece Int64 where
103− case Data.Text.Read.decimal s of
104− Right (i, _) -> Just i
106− toSinglePiece = S.pack . show
109−class MultiPiece s where
110− fromMultiPiece :: [S.Text] -> Maybe s
111− toMultiPiece :: s -> [S.Text]
113−instance MultiPiece [String] where
114− fromMultiPiece = Just . map S.unpack
85+fromMultiPiece = fromRouteMultiPiece
115− toMultiPiece = map S.pack
117−instance MultiPiece [S.Text] where
118− fromMultiPiece = Just
121−instance MultiPiece [L.Text] where
122− fromMultiPiece = Just . map (L.fromChunks . return)
123− toMultiPiece = map $ S.concat . L.toChunks