web-routes-quasi 0.6.3.1 → 0.7.0
raw patch · 2 files changed
+33/−29 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Web.Routes.Quasi: fromMultiPiece :: MultiPiece s => [String] -> Either String s
+ Web.Routes.Quasi: fromMultiPiece :: MultiPiece s => [Text] -> Maybe s
- Web.Routes.Quasi: fromSinglePiece :: SinglePiece s => String -> Either String s
+ Web.Routes.Quasi: fromSinglePiece :: SinglePiece s => Text -> Maybe s
- Web.Routes.Quasi: toMultiPiece :: MultiPiece s => s -> [String]
+ Web.Routes.Quasi: toMultiPiece :: MultiPiece s => s -> [Text]
- Web.Routes.Quasi: toSinglePiece :: SinglePiece s => s -> String
+ Web.Routes.Quasi: toSinglePiece :: SinglePiece s => s -> Text
- Web.Routes.Quasi.Classes: fromMultiPiece :: MultiPiece s => [String] -> Either String s
+ Web.Routes.Quasi.Classes: fromMultiPiece :: MultiPiece s => [Text] -> Maybe s
- Web.Routes.Quasi.Classes: fromSinglePiece :: SinglePiece s => String -> Either String s
+ Web.Routes.Quasi.Classes: fromSinglePiece :: SinglePiece s => Text -> Maybe s
- Web.Routes.Quasi.Classes: toMultiPiece :: MultiPiece s => s -> [String]
+ Web.Routes.Quasi.Classes: toMultiPiece :: MultiPiece s => s -> [Text]
- Web.Routes.Quasi.Classes: toSinglePiece :: SinglePiece s => s -> String
+ Web.Routes.Quasi.Classes: toSinglePiece :: SinglePiece s => s -> Text
Files
- Web/Routes/Quasi/Classes.hs +32/−28
- web-routes-quasi.cabal +1/−1
Web/Routes/Quasi/Classes.hs view
@@ -9,45 +9,49 @@ import Data.Int (Int64) import qualified Data.Text as S import qualified Data.Text.Lazy as L+import qualified Data.Text.Read class SinglePiece s where- fromSinglePiece :: String -> Either String s- toSinglePiece :: s -> String+ fromSinglePiece :: S.Text -> Maybe s+ toSinglePiece :: s -> S.Text instance SinglePiece String where- fromSinglePiece s = if null s then Left "Empty string" else Right s- toSinglePiece = id+ fromSinglePiece s = if S.null s then Nothing else Just (S.unpack s)+ toSinglePiece = S.pack instance SinglePiece S.Text where- fromSinglePiece s = if null s then Left "Empty string" else Right (S.pack s)- toSinglePiece = S.unpack+ fromSinglePiece s = if S.null s then Nothing else Just s+ toSinglePiece = id instance SinglePiece L.Text where- fromSinglePiece s = if null s then Left "Empty string" else Right (L.pack s)- toSinglePiece = L.unpack+ fromSinglePiece s = if S.null s then Nothing else Just (L.fromChunks [s])+ toSinglePiece = S.concat . L.toChunks instance SinglePiece Integer where- fromSinglePiece s = case reads s of- (i, _):_ -> Right i- _ -> Left $ "Invalid integer: " ++ s- toSinglePiece = show+ fromSinglePiece s =+ case Data.Text.Read.decimal s of+ Right (i, _) -> Just i+ Left _ -> Nothing+ toSinglePiece = S.pack . show instance SinglePiece Int where- fromSinglePiece s = case reads s of- (i, _):_ -> Right i- _ -> Left $ "Invalid integer: " ++ s- toSinglePiece = show+ fromSinglePiece s =+ case Data.Text.Read.decimal s of+ Right (i, _) -> Just i+ Left _ -> Nothing+ toSinglePiece = S.pack . show instance SinglePiece Int64 where- fromSinglePiece s = case reads s of- (i, _):_ -> Right i- _ -> Left $ "Invalid integer: " ++ s- toSinglePiece = show+ fromSinglePiece s =+ case Data.Text.Read.decimal s of+ Right (i, _) -> Just i+ Left _ -> Nothing+ toSinglePiece = S.pack . show class MultiPiece s where- fromMultiPiece :: [String] -> Either String s- toMultiPiece :: s -> [String]+ fromMultiPiece :: [S.Text] -> Maybe s+ toMultiPiece :: s -> [S.Text] instance MultiPiece [String] where- fromMultiPiece = Right- toMultiPiece = id+ fromMultiPiece = Just . map S.unpack+ toMultiPiece = map S.pack type Strings = [String] instance MultiPiece [S.Text] where- fromMultiPiece = Right . map S.pack- toMultiPiece = map S.unpack+ fromMultiPiece = Just+ toMultiPiece = id instance MultiPiece [L.Text] where- fromMultiPiece = Right . map L.pack- toMultiPiece = map L.unpack+ fromMultiPiece = Just . map (L.fromChunks . return)+ toMultiPiece = map $ S.concat . L.toChunks
web-routes-quasi.cabal view
@@ -1,5 +1,5 @@ name: web-routes-quasi-version: 0.6.3.1+version: 0.7.0 license: BSD3 license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>