@@ -3,8 +3,10 @@ module Web.PathPieces
33 ( RoutePiece (..)
44 , RouteMultiPiece (..)
55 -- * Deprecated
6− , SinglePiece (..)
7− , MultiPiece (..)
6+ , toSinglePiece
7+ , toMultiPiece
8+ , fromSinglePiece
9+ , fromMultiPiece
810 ) where
911
1012import Data.Int (Int64)
@@ -66,58 +68,18 @@ instance RouteMultiPiece [L.Text] where
6668 fromRouteMultiPiece = Just . map (L.fromChunks . return)
6769 toRouteMultiPiece = map $ S.concat . L.toChunks
6870
71+{-# DEPRECATED toSinglePiece "Use toRoutePiece instead of toSinglePiece" #-}
72+toSinglePiece :: RoutePiece p => p -> S.Text
73+toSinglePiece = toRoutePiece
6974
70−-- | deprecated api
71−class SinglePiece s where
72− fromSinglePiece :: S.Text -> Maybe s
73− toSinglePiece :: s -> S.Text
75+{-# DEPRECATED fromSinglePiece "Use fromRoutePiece instead of fromSinglePiece" #-}
76+fromSinglePiece :: RoutePiece p => S.Text -> Maybe p
77+fromSinglePiece = fromRoutePiece
7478
75−instance SinglePiece String where
76− fromSinglePiece s = if S.null s then Nothing else Just (S.unpack s)
77− toSinglePiece = S.pack
79+{-# DEPRECATED toMultiPiece "Use toRouteMultiPiece instead of toMultiPiece" #-}
80+toMultiPiece :: RouteMultiPiece ps => ps -> [S.Text]
81+toMultiPiece = toRouteMultiPiece
7882
79−instance SinglePiece S.Text where
80− fromSinglePiece s = if S.null s then Nothing else Just s
81− toSinglePiece = id
82−
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
86−
87−instance SinglePiece Integer where
88− fromSinglePiece s =
89− case Data.Text.Read.decimal s of
90− Right (i, _) -> Just i
91− Left _ -> Nothing
92− toSinglePiece = S.pack . show
93−
94−instance SinglePiece Int where
95− fromSinglePiece s =
96− case Data.Text.Read.decimal s of
97− Right (i, _) -> Just i
98− Left _ -> Nothing
99− toSinglePiece = S.pack . show
100−
101−instance SinglePiece Int64 where
102− fromSinglePiece s =
103− case Data.Text.Read.decimal s of
104− Right (i, _) -> Just i
105− Left _ -> Nothing
106− toSinglePiece = S.pack . show
107−
108−
109−class MultiPiece s where
110− fromMultiPiece :: [S.Text] -> Maybe s
111− toMultiPiece :: s -> [S.Text]
112−
113−instance MultiPiece [String] where
114− fromMultiPiece = Just . map S.unpack
115− toMultiPiece = map S.pack
116−
117−instance MultiPiece [S.Text] where
118− fromMultiPiece = Just
119− toMultiPiece = id
120−
121−instance MultiPiece [L.Text] where
122− fromMultiPiece = Just . map (L.fromChunks . return)
123− toMultiPiece = map $ S.concat . L.toChunks
83+{-# DEPRECATED fromMultiPiece "Use fromRouteMultiPiece instead of fromMultiPiece" #-}
84+fromMultiPiece :: RouteMultiPiece ps => [S.Text] -> Maybe ps
85+fromMultiPiece = fromRouteMultiPiece